]> Shamusworld >> Repos - virtualjaguar/blob - src/include/cdi.h
Initial revision
[virtualjaguar] / src / include / cdi.h
1 #ifndef __CDI_H__
2 #define __CDI_H__
3
4 #include "jaguar.h"
5 #include "types.h"
6 #include <stdio.h>
7 #include <stdlib.h>
8 #ifndef __PORT__
9 #include <io.h>
10 #endif
11 #include <fcntl.h>
12
13 struct s_cdi_track
14 {
15         uint8   filename_length;
16         uint32  pregap_length;
17         uint32  length;
18         uint32  mode;
19         uint32  start_lba;
20         uint32  total_length;
21         uint32  sector_size;
22         uint32  sector_size_value;
23         uint32  position;
24 };
25
26 struct s_cdi_session
27 {
28         uint16 nb_of_tracks;
29         s_cdi_track *tracks;
30 };
31
32 struct s_cdi_descriptor
33 {
34         uint32 length;
35         uint32 version;
36         uint32 header_offset;
37         uint16 nb_of_sessions;
38         s_cdi_session *sessions;
39 };
40
41 extern int                              cdi_fp;
42 extern uint32                   cdi_load_address;
43 extern uint32                   cdi_code_length;
44 extern s_cdi_descriptor *cdi_descriptor;
45 extern s_cdi_track              **cdi_tracks;
46 extern uint32                   cdi_tracks_count;
47
48 int cdi_open(char *path);
49 void cdi_close(int fp);
50 s_cdi_descriptor *cdi_get_descriptor(int fp, FILE *stdfp);
51 void cdi_dump_descriptor(FILE *fp,s_cdi_descriptor *cdi_descriptor);
52 uint8 *cdi_extract_boot_code(int fp, s_cdi_descriptor *cdi_descriptor);
53 void cdi_load_sector(uint32 sector, uint8 *buffer);
54
55 #endif