diff options
| author | kx <kx@radix-linux.su> | 2026-10-09 18:00:15 +0300 |
|---|---|---|
| committer | kx <kx@radix-linux.su> | 2026-10-09 18:00:15 +0300 |
| commit | 065da3509019b15dd0e678072e6be629e5330bef (patch) | |
| tree | 69c934c9e786ac048b4fbe8f4c4c5571661521f4 /utils/mcpu-archive.h | |
| parent | d130fe27fa753be02ed76fd9b277aa3c3d928eb9 (diff) | |
| download | libmcpu-0.4.0.tar.xz | |
Version 0.4.00.4.0
Diffstat (limited to 'utils/mcpu-archive.h')
| -rw-r--r-- | utils/mcpu-archive.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/utils/mcpu-archive.h b/utils/mcpu-archive.h new file mode 100644 index 0000000..80634f0 --- /dev/null +++ b/utils/mcpu-archive.h @@ -0,0 +1,41 @@ +#ifndef __MCPU_ARCHIVE_H +#define __MCPU_ARCHIVE_H + +#include <stddef.h> + + +typedef struct mcpu_archive_member +{ + char *name; + unsigned char *data; + size_t size; + char **symbols; + size_t symbol_count; +} mcpu_archive_member; + + +typedef struct mcpu_archive +{ + mcpu_archive_member *members; + size_t member_count; + int had_symbol_index; +} mcpu_archive; + + +void mcpu_archive_init( mcpu_archive *archive ); +void mcpu_archive_free( mcpu_archive *archive ); +void mcpu_archive_member_free( mcpu_archive_member *member ); + +int mcpu_archive_read( const char *path, mcpu_archive *archive, + char *err, size_t errsz ); +int mcpu_archive_write( const char *path, const mcpu_archive *archive, + int write_symbol_index, char *err, size_t errsz ); + +int mcpu_archive_member_load( const char *path, mcpu_archive_member *member, + char *err, size_t errsz ); +int mcpu_archive_append( mcpu_archive *archive, mcpu_archive_member *member, + char *err, size_t errsz ); + +const char *mcpu_archive_basename( const char *path ); + +#endif |
