PCem

view src/ide.h @ 128:42d0b879eb9e

Implemented ATAPI Read CD-ROM Capacity command, fixes CD usage in OS/2.
author TomW
date Sat Jul 12 14:22:54 2014 +0100
parents fb4a67daaa1b
children
line source
1 #ifndef __IDE__
2 #define __IDE__
4 struct IDE;
6 extern void writeide(int ide_board, uint16_t addr, uint8_t val);
7 extern void writeidew(int ide_board, uint16_t val);
8 extern uint8_t readide(int ide_board, uint16_t addr);
9 extern uint16_t readidew(int ide_board);
10 extern void callbackide(int ide_board);
11 extern void resetide(void);
12 extern void ide_init();
13 extern void ide_pri_enable();
14 extern void ide_sec_enable();
15 extern void ide_pri_disable();
16 extern void ide_sec_disable();
17 extern void ide_set_bus_master(int (*read_sector)(int channel, uint8_t *data), int (*write_sector)(int channel, uint8_t *data), void (*set_irq)(int channel));
19 /*ATAPI stuff*/
20 typedef struct ATAPI
21 {
22 int (*ready)(void);
23 int (*readtoc)(uint8_t *b, uint8_t starttrack, int msf, int maxlen, int single);
24 void (*readtoc_session)(uint8_t *b, int msf, int maxlen);
25 uint8_t (*getcurrentsubchannel)(uint8_t *b, int msf);
26 void (*readsector)(uint8_t *b, int sector);
27 void (*playaudio)(uint32_t pos, uint32_t len, int ismsf);
28 void (*seek)(uint32_t pos);
29 void (*load)(void);
30 void (*eject)(void);
31 void (*pause)(void);
32 void (*resume)(void);
33 uint32_t (*size)(void);
34 void (*stop)(void);
35 void (*exit)(void);
36 } ATAPI;
38 extern ATAPI *atapi;
40 void atapi_discchanged();
42 extern int ideboard;
44 extern int idecallback[2];
46 extern char ide_fn[2][512];
48 #endif //__IDE__