diff options
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 |
