Implemented support for hardware cache flush. This is based on code I originally

did for yellowTAB GmbH when I worked for then and is being used under permission.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19840 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Bruno G. Albuquerque
2007-01-17 01:39:59 +00:00
parent 7f6c8fdc86
commit e62e6bd5a7
12 changed files with 112 additions and 15 deletions
+17
View File
@@ -1023,4 +1023,21 @@ enum {
// and Mechanism status page
} scsi_read_cd_sub_channel_selection;
// SYNCHRONIZE CACHE (10)
typedef struct scsi_cmd_sync_cache {
uint8 opcode;
LBITFIELD8_4(
RelAddr : 1,
immed : 1, // 1 - return immediately, 0 - return on completion
res1_1 : 3,
LUN : 3
);
scsi_cd_lba lba;
uint8 res2;
uint8 nblocks_high;
uint8 nblocks_low;
uint8 control;
} scsi_cmd_sync_cache;
#endif
+3 -1
View File
@@ -154,7 +154,9 @@ typedef struct scsi_periph_interface {
// fill data with icon (for B_GET_ICON ioctl)
status_t (*get_icon)( icon_type type, device_icon *data );
// synchronizes (flush) the device cache
err_res(*synchronize_cache)(scsi_periph_device device, scsi_ccb *request);
} scsi_periph_interface;
#define SCSI_PERIPH_MODULE_NAME "generic/scsi_periph/v1"