SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
archive.h
Go to the documentation of this file.
1
#ifndef _archive_h_
2
#define _archive_h_
3
4
#include <
Runtime/platform.h
>
5
6
#include <
sysdolphin/baselib/forward.h
>
// IWYU pragma: export
7
8
#define HSD_ARCHIVE_DONT_FREE 1
9
10
struct
HSD_ArchiveHeader
{
11
u32
file_size
;
/* 0x00 */
12
u32
data_size
;
/* 0x04 */
13
u32
nb_reloc
;
/* 0x08 */
14
u32
nb_public
;
/* 0x0C */
15
u32
nb_extern
;
/* 0x10 */
16
u8
version
[4];
/* 0x14 */
17
u32
pad
[2];
/* 0x18 */
18
};
19
ASSERT_SIZE
(
struct
HSD_ArchiveHeader
, 0x20);
20
21
struct
HSD_ArchiveRelocationInfo
{
22
u32
offset
;
23
};
24
25
struct
HSD_ArchivePublicInfo
{
26
u32
offset
;
/* 0x00 */
27
u32
symbol
;
/* 0x04 */
28
};
29
30
struct
HSD_ArchiveExternInfo
{
31
u32
offset
;
/* 0x00 */
32
u32
symbol
;
/* 0x04 */
33
};
34
35
struct
HSD_Archive
{
36
HSD_ArchiveHeader
header
;
/* 0x00 */
37
u8
*
data
;
/* 0x20 */
38
HSD_ArchiveRelocationInfo
*
reloc_info
;
/* 0x24 */
39
HSD_ArchivePublicInfo
*
public_info
;
/* 0x28 */
40
HSD_ArchiveExternInfo
*
extern_info
;
/* 0x2C */
41
char
*
symbols
;
/* 0x30 */
42
HSD_Archive
*
next
;
/* 0x34 */
43
char
*
name
;
/* 0x38 */
44
u32
flags
;
/* 0x3C */
45
void
*
top_ptr
;
/* 0x40 */
46
};
47
ASSERT_SIZE
(
struct
HSD_Archive
, 0x44);
48
49
s32
HSD_ArchiveParse
(
HSD_Archive
*,
u8
*,
size_t
file_size);
50
void
*
HSD_ArchiveGetPublicAddress
(
HSD_Archive
*,
const
char
*);
51
char
*
HSD_ArchiveGetExtern
(
HSD_Archive
*,
int
);
52
void
HSD_ArchiveLocateExtern
(
HSD_Archive
*,
const
char
*,
void
*);
53
54
#endif
HSD_ArchiveLocateExtern
void HSD_ArchiveLocateExtern(HSD_Archive *, const char *, void *)
Definition
archive.c:96
HSD_ArchiveGetExtern
char * HSD_ArchiveGetExtern(HSD_Archive *, int)
Definition
archive.c:87
HSD_ArchiveParse
s32 HSD_ArchiveParse(HSD_Archive *, u8 *, size_t file_size)
Definition
archive.c:18
HSD_ArchiveGetPublicAddress
void * HSD_ArchiveGetPublicAddress(HSD_Archive *, const char *)
Definition
archive.c:70
u32
unsigned long u32
Definition
types.h:9
s32
signed long s32
Definition
types.h:8
u8
unsigned char u8
Definition
types.h:5
platform.h
ASSERT_SIZE
#define ASSERT_SIZE(expr, size)
Definition
platform.h:161
HSD_ArchiveExternInfo
Definition
archive.h:30
HSD_ArchiveExternInfo::symbol
u32 symbol
Definition
archive.h:32
HSD_ArchiveExternInfo::offset
u32 offset
Definition
archive.h:31
HSD_ArchiveHeader
Definition
archive.h:10
HSD_ArchiveHeader::pad
u32 pad[2]
Definition
archive.h:17
HSD_ArchiveHeader::nb_reloc
u32 nb_reloc
Definition
archive.h:13
HSD_ArchiveHeader::nb_extern
u32 nb_extern
Definition
archive.h:15
HSD_ArchiveHeader::data_size
u32 data_size
Definition
archive.h:12
HSD_ArchiveHeader::version
u8 version[4]
Definition
archive.h:16
HSD_ArchiveHeader::nb_public
u32 nb_public
Definition
archive.h:14
HSD_ArchiveHeader::file_size
u32 file_size
Definition
archive.h:11
HSD_ArchivePublicInfo
Definition
archive.h:25
HSD_ArchivePublicInfo::offset
u32 offset
Definition
archive.h:26
HSD_ArchivePublicInfo::symbol
u32 symbol
Definition
archive.h:27
HSD_ArchiveRelocationInfo
Definition
archive.h:21
HSD_ArchiveRelocationInfo::offset
u32 offset
Definition
archive.h:22
HSD_Archive
Definition
archive.h:35
HSD_Archive::flags
u32 flags
Definition
archive.h:44
HSD_Archive::reloc_info
HSD_ArchiveRelocationInfo * reloc_info
Definition
archive.h:38
HSD_Archive::extern_info
HSD_ArchiveExternInfo * extern_info
Definition
archive.h:40
HSD_Archive::public_info
HSD_ArchivePublicInfo * public_info
Definition
archive.h:39
HSD_Archive::data
u8 * data
Definition
archive.h:37
HSD_Archive::symbols
char * symbols
Definition
archive.h:41
HSD_Archive::next
HSD_Archive * next
Definition
archive.h:42
HSD_Archive::top_ptr
void * top_ptr
Definition
archive.h:45
HSD_Archive::header
HSD_ArchiveHeader header
Definition
archive.h:36
HSD_Archive::name
char * name
Definition
archive.h:43
forward.h
src
sysdolphin
baselib
archive.h
Generated by
1.17.0