diff options
Diffstat (limited to 'BeOS/ar-1.1/mwlib.h')
-rw-r--r-- | BeOS/ar-1.1/mwlib.h | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/BeOS/ar-1.1/mwlib.h b/BeOS/ar-1.1/mwlib.h deleted file mode 100644 index 67af325..0000000 --- a/BeOS/ar-1.1/mwlib.h +++ /dev/null @@ -1,118 +0,0 @@ -/* -** mwlib.h - POSIX 1003.2 "ar" command -** -** $Id$ -** -** This isn't a pure POSIX 1003.2 ar; it only manipulates Metrowerks -** Library files, not general-purpose POSIX 1003.2 format archives. -** -** Dec. 14, 1997 Chris Herborth (chrish@qnx.com) -** -** This code is donated to the PUBLIC DOMAIN. You can use, abuse, modify, -** redistribute, steal, or otherwise manipulate this code. No restrictions -** at all. If you laugh at this code, you can't use it. -** -** This "ar" was implemented using IEEE Std 1003.2-1992 as the basis for -** the interface, and Metrowerk's published docs detailing their library -** format. Look inside for clues about how reality differs from MW's -** documentation on BeOS... -*/ - -#include <support/SupportDefs.h> -#include <time.h> - -/* ---------------------------------------------------------------------- -** Constants -** -*/ -#define MWLIB_MAGIC_WORD 'MWOB' -#define MWLIB_MAGIC_PROC 'PPC ' - -/* ---------------------------------------------------------------------- -** Structures -** -** This is based on the "Metrowerks CodeWarrior Library Reference -** Specification", which isn't 100% accurate for BeOS. -*/ - -typedef struct MWLibHeader { - uint32 magicword; - uint32 magicproc; - uint32 magicflags; - uint32 version; - - uint32 code_size; - uint32 data_size; - - uint32 num_objects; -} MWLibHeader; - -typedef struct MWLibFile { - time_t m_time; - - uint32 off_filename; - uint32 off_fullpath; - uint32 off_object; - uint32 object_size; -} MWLibFile; - -typedef struct MWLib { - MWLibHeader header; - - MWLibFile *files; - - char **names; - - char **data; -} MWLib; - -/* This bears no resemblance to what's in the Metrowerks docs. -** -** Note that this is incomplete; this is all the info I needed for -** ar though. -*/ -typedef struct MWObject { - uint32 magic_word; /* 'MWOB' */ - uint32 arch; /* 'PPC '; this isn't in the docs */ - uint32 version; - uint32 flags; - - uint32 code_size; - uint32 data_size; -} MWObject; - -/* ---------------------------------------------------------------------- -** Function prototypes -** -** load_MW_lib() - load a Metrowerks library -** -** Returns: -** B_OK - all is well -** B_FILE_NOT_FOUND - can't open the given file -** B_IO_ERROR - can't read from the given file -** B_BAD_VALUE - invalid magic word in the file -** B_MISMATCHED_VALUES - invalid processor value (ie, not a PowerPC lib), -** or the magicflags member is not 0, or the file -** version number isn't 1. -** B_NO_MEMORY - unable to allocate memory while loading the lib -** -** write_MW_lib() - write a Metrowerks library -** -** Returns: -** B_OK - all is well -** -** write_MW_lib() - write a Metrowerks library file -** -** Returns: -** B_OK - all is well; doesn't necessarily mean the file was written -** properly, just that you didn't lose any data -** B_NO_MEMORY - unable to allocate offset buffers -** B_ERROR - problem with backup file (can't rename existing file) -** -** Note: -** If you use this in a long-lived program, it leaks memory; the MWLib -** contents are never free()'d. -*/ -status_t load_MW_lib( MWLib *lib, const char *filename ); -status_t write_MW_lib( MWLib *lib, const char *filename ); -void setfiletype( const char *filename, const char *type ); |