1/* 2 * Copyright 2008, Axel D��rfler, axeld@pinc-software.de. 3 * Copyright 2003, Thomas Kurschel. All rights reserved. 4 * Distributed under the terms of the MIT License. 5 */ 6#ifndef _SCSI_CD_H 7#define _SCSI_CD_H 8 9 10#include <device_manager.h> 11#include <scsi_periph.h> 12#include <scsi.h> 13 14#include "dma_resources.h" 15#include "IORequest.h" 16 17 18struct IOCache; 19struct IOScheduler; 20 21 22#define SCSI_CD_DRIVER_MODULE_NAME "drivers/disk/scsi/scsi_cd/driver_v1" 23#define SCSI_CD_DEVICE_MODULE_NAME "drivers/disk/scsi/scsi_cd/device_v1" 24 25 26struct cd_driver_info { 27 device_node* node; 28 ::scsi_periph_device scsi_periph_device; 29 ::scsi_device scsi_device; 30 scsi_device_interface* scsi; 31 IOScheduler* io_scheduler; 32 DMAResource* dma_resource; 33 34 uint64 capacity; 35 uint64 original_capacity; 36 uint32 block_size; 37 uint32 physical_block_size; 38 39 bool removable; 40 uint8 device_type; 41}; 42 43struct cd_handle { 44 ::scsi_periph_handle scsi_periph_handle; 45 cd_driver_info* info; 46}; 47 48#endif // _SCSI_CD_H 49