Changeset 295 for soft/giet_vm/giet_drivers/ioc_driver.h
- Timestamp:
- Mar 26, 2014, 6:44:44 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_drivers/ioc_driver.h
r289 r295 13 13 /////////////////////////////////////////////////////////////////////////////////// 14 14 15 enum IOC_registers16 {17 BLOCK_DEVICE_BUFFER,18 BLOCK_DEVICE_LBA,19 BLOCK_DEVICE_COUNT,20 BLOCK_DEVICE_OP,21 BLOCK_DEVICE_STATUS,22 BLOCK_DEVICE_IRQ_ENABLE,23 BLOCK_DEVICE_SIZE,24 BLOCK_DEVICE_BLOCK_SIZE,25 BLOCK_DEVICE_BUFFER_EXT,26 };27 enum IOC_operations28 {29 BLOCK_DEVICE_NOOP,30 BLOCK_DEVICE_READ,31 BLOCK_DEVICE_WRITE,32 };33 enum IOC_status34 {35 BLOCK_DEVICE_IDLE,36 BLOCK_DEVICE_BUSY,37 BLOCK_DEVICE_READ_SUCCESS,38 BLOCK_DEVICE_WRITE_SUCCESS,39 BLOCK_DEVICE_READ_ERROR,40 BLOCK_DEVICE_WRITE_ERROR,41 BLOCK_DEVICE_ERROR,42 };43 15 enum IOC_driver_modes 44 16 { 45 IOC_BOOT_PA_MODE, // No V2P translation / Polling IOC_STATUS / no access checking 46 IOC_BOOT_VA_MODE, // V2P translation / Polling IOC_STATUS / no access checking 47 IOC_KERNEL_MODE, // V2P translation / Descheduling + IRQ / no access checking 48 IOC_USER_MODE, // V2P translation / Descheduling + IRQ / access checking 17 IOC_BOOT_MODE = 0, // Polling IOC_STATUS / no access right checking 18 IOC_KERNEL_MODE = 1, // Descheduling + IRQ / no access right checking 19 IOC_USER_MODE = 2, // Descheduling + IRQ / access right checking 49 20 }; 50 21 51 22 /////////////////////////////////////////////////////////////////////////////////// 52 // IOC access functions and variables (vci_block_device)23 // IOC global variables (generic disk controller) 53 24 /////////////////////////////////////////////////////////////////////////////////// 54 25 55 extern unsigned int _ioc_lock;56 extern unsigned int _ioc_status;57 extern volatile unsigned int _ioc_gtid;58 26 extern volatile unsigned int _ioc_iommu_ix1; 59 27 extern volatile unsigned int _ioc_iommu_npages; 60 28 29 /////////////////////////////////////////////////////////////////////////////////// 30 // IOC access functions (generic disk controller) 31 /////////////////////////////////////////////////////////////////////////////////// 32 61 33 extern unsigned int _ioc_init( unsigned int channel ); 62 34 63 extern unsigned int _ioc_write( unsigned int mode, 35 extern unsigned int _ioc_write( unsigned int channel, 36 unsigned int mode, 64 37 unsigned int lba, 65 38 const void* buffer, 66 39 unsigned int count ); 67 40 68 extern unsigned int _ioc_read( unsigned int mode, 41 extern unsigned int _ioc_read( unsigned int channel, 42 unsigned int mode, 69 43 unsigned int lba, 70 44 void* buffer, 71 45 unsigned int count ); 72 46 73 extern unsigned int _ioc_get_status( unsigned int channel, 74 unsigned int* status ); 47 extern unsigned int _ioc_get_status( unsigned int channel ); 75 48 76 49 extern unsigned int _ioc_get_block_size();
Note: See TracChangeset
for help on using the changeset viewer.