From 2f3f8868ae60aaa0eaeee162d5f89c774bebad62 Mon Sep 17 00:00:00 2001 From: fslongjin Date: Fri, 25 Mar 2022 16:45:52 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20=E5=9D=97=E8=AE=BE=E5=A4=87=E9=A9=B1?= =?UTF-8?q?=E5=8A=A8=E7=9A=84=E4=B8=80=E4=BA=9B=E6=95=B0=E6=8D=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/driver/disk/block_device.h | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 kernel/driver/disk/block_device.h diff --git a/kernel/driver/disk/block_device.h b/kernel/driver/disk/block_device.h new file mode 100644 index 00000000..157c8083 --- /dev/null +++ b/kernel/driver/disk/block_device.h @@ -0,0 +1,39 @@ +#pragma once + +#include "../../common/glib.h" +#include "stdint.h" + +struct block_device_operation +{ + long (*open)(); + long (*close)(); + long (*ioctl)(long cmd, long arg); + long (*transfer)(long cmd, ul LBA_start, ul count, uchar* buffer); +}; + +/** + * @brief 块设备请求队列内的packet + * + */ +struct block_device_request_packet +{ + uchar cmd; + uint32_t LBA_start; + uint32_t count; + uchar *buffer; + + void (*end_handler)(ul num, ul arg); + + struct List list; +}; + +/** + * @brief 块设备的请求队列 + * + */ +struct block_device_request_queue +{ + struct List queue_list; + struct block_device_request_packet * entry; + ul request_count; +}; \ No newline at end of file