xref: /haiku/src/add-ons/kernel/drivers/disk/scsi/scsi_disk/scsi_disk.h (revision a127b88ecbfab58f64944c98aa47722a18e363b2)
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