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