1 /* 2 * Copyright 2008, Axel Dörfler, axeld@pinc-software.de. 3 * Copyright 2002/03, Thomas Kurschel. All rights reserved. 4 * Distributed under the terms of the MIT License. 5 */ 6 #ifndef _SCSI_DISK_H 7 #define _SCSI_DISK_H 8 9 10 #include <device_manager.h> 11 #include <scsi.h> 12 #include <scsi_periph.h> 13 14 15 struct DMAResource; 16 struct IOScheduler; 17 18 19 #define SCSI_DISK_DRIVER_MODULE_NAME "drivers/disk/scsi/scsi_disk/driver_v1" 20 #define SCSI_DISK_DEVICE_MODULE_NAME "drivers/disk/scsi/scsi_disk/device_v1" 21 22 23 struct das_driver_info { 24 device_node* node; 25 ::scsi_periph_device scsi_periph_device; 26 ::scsi_device scsi_device; 27 scsi_device_interface* scsi; 28 IOScheduler* io_scheduler; 29 DMAResource* dma_resource; 30 31 uint64 capacity; 32 uint32 block_size; 33 uint32 physical_block_size; 34 35 bool removable; 36 }; 37 38 struct das_handle { 39 ::scsi_periph_handle scsi_periph_handle; 40 das_driver_info* info; 41 }; 42 43 #endif /* _SCSI_DISK_H */ 44