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
15struct DMAResource;
16struct 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
23struct 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
34	bool					removable;
35};
36
37struct das_handle {
38	::scsi_periph_handle	scsi_periph_handle;
39	das_driver_info*		info;
40};
41
42#endif	/* _SCSI_DISK_H */
43