⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scsi_periph_int.h

📁 newos is new operation system
💻 H
字号:
/* ** Copyright 2002, Thomas Kurschel. All rights reserved.** Distributed under the terms of the NewOS License.*/#ifndef __SCSI_PERIPH_INT_H__#define __SCSI_PERIPH_INT_H__#include <kernel/lock.h>#include <kernel/debug.h>#include <kernel/bus/scsi/scsi_periph.h>#define debug_level_flow 3#define debug_level_error 3#define debug_level_info 3#define DEBUG_MSG_PREFIX "SCSI_PERIPH -- "#include <kernel/debug_ext.h>#ifndef offsetof#define offsetof(type, member) ((size_t)&(((type *)0)->member))#endiftypedef struct scsi_device_info {	struct scsi_device_info *next;	struct scsi_handle_info *handles;		xpt_device_cookie xpt_device;	xpt_bus_cookie xpt_bus;	periph_device_cookie periph_device;		uint8 valid : 1;	uint8 removal_requested : 1;	uchar path_id, target_id, target_lun;	scsi_res_inquiry inquiry;	//char *name;	mutex mutex;	int std_timeout;	/*uint64 capacity;	uint32 block_size;*/		CAM_SIM_PARAMS sim_params;		struct scsi_driver_info *driver;} scsi_device_info;typedef struct scsi_handle_info {	struct scsi_device_info *device;	struct scsi_handle_info *next, *prev;	periph_handle_cookie periph_handle;} scsi_handle_info;typedef struct scsi_driver_info {	scsi_periph_callbacks *callbacks;	periph_cookie periph_cookie;	scsi_device_info *devices;	xpt_periph_cookie xpt_cookie;} scsi_driver_info;cam_for_driver_interface *xpt;mutex periph_devices_lock;void media_changed( scsi_device_info *device, CCB_HEADER *ccb );err_res check_error( scsi_device_info *device, CCB_SCSIIO *request );int handle_open( scsi_device_info *device, periph_handle_cookie periph_handle,	scsi_handle_info **res_handle );int handle_close( scsi_handle_info *handle );int scsi_register_driver( scsi_periph_callbacks *callbacks, 	periph_cookie periph_cookie, scsi_driver_info **driver_out );int scsi_unregister_driver( scsi_driver_info *driver );void scsi_async( scsi_driver_info *driver, 	int path_id, int target_id, int lun, 	int code, const void *data, int data_len );	int scsi_check_capacity( scsi_device_info *device, CCB_HEADER *ccb );void destroy_device( scsi_device_info *device );int scsi_get_media_status( scsi_handle_info *handle );err_res send_start_stop( scsi_device_info *device, CCB_SCSIIO *request, 	bool start, bool with_LoEj );int scsi_check_capacity( scsi_device_info *device, CCB_HEADER *ccb );int handle_open( scsi_device_info *device, periph_handle_cookie periph_handle,	scsi_handle_info **res_handle );int handle_close( scsi_handle_cookie handle );char *compose_device_name( scsi_device_info *device, const char *prefix );	#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -