]> FriiDump Source - friidump.git/blob - libfriidump/xbox_portable.h
Record A102 and B101 live profile evidence
[friidump.git] / libfriidump / xbox_portable.h
1 #ifndef XBOX_PORTABLE_H_INCLUDED
2 #define XBOX_PORTABLE_H_INCLUDED
3
4 #include <stddef.h>
5 #include <stdint.h>
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 #define XBOX_PORTABLE_TITLE_MAX 256
12 #define XBOX_PORTABLE_MEDIA_ID_MAX 64
13 #define XBOX_PORTABLE_REGION_MAX 128
14
15 typedef int (*xbox_portable_read10_func)(void *context,
16                                          uint32_t lba,
17                                          uint32_t sectors,
18                                          unsigned char *buffer,
19                                          size_t buffer_size);
20
21 typedef int (*xbox_portable_read_structure_func)(void *context,
22                                                   uint8_t format,
23                                                   uint8_t layer,
24                                                   unsigned char *buffer,
25                                                   size_t buffer_size);
26
27 typedef struct xbox_portable_metadata_s {
28     int valid;
29     uint32_t xdfs_volume_lba;
30     uint32_t title_id;
31     uint32_t allowed_media;
32     uint32_t game_region;
33     uint32_t game_ratings;
34     uint32_t disc_number;
35     uint32_t version;
36     int have_game_region;
37     char title[XBOX_PORTABLE_TITLE_MAX];
38     char media_id[XBOX_PORTABLE_MEDIA_ID_MAX];
39     char region[XBOX_PORTABLE_REGION_MAX];
40 } xbox_portable_metadata;
41
42 struct disc_s;
43
44 void xbox_portable_metadata_init(xbox_portable_metadata *metadata);
45 int xbox_portable_read_metadata(xbox_portable_read10_func read10,
46                                 xbox_portable_read_structure_func read_structure,
47                                 void *context,
48                                 xbox_portable_metadata *metadata);
49 int xbox_portable_read_metadata_from_disc(struct disc_s *disc,
50                                           xbox_portable_metadata *metadata);
51
52 #ifdef __cplusplus
53 }
54 #endif
55
56 #endif