/* * IFFSCAN.H * * (*func)(cmd, ic) * IFFCHUNK *ic; current chunk being scanned. - ref parents until 0 Type */ #ifndef LOCAL_TYPEDEFS_H #include #endif #define IFFSCAN struct _IFFSCAN #define IF_NAMED 0x0001 #define IF_SUBS 0x0002 IFFCHUNK { MNODE ic_Node; ulong ic_Type; /* type of chunk */ ulong ic_Len; /* length of chunk */ ulong ic_SubType; /* sub-type or 0 */ ubyte *ic_Data; ulong ic_Actual; /* # bytes read so far */ ulong ic_Offset; /* seek position */ MLIST ic_List; /* associated props */ }; /* * If if_Form is non-zero, then if_Type is a form-specific local chunk * type for if_Form and overides any non-specific types (where if_Form = 0) * * if_Flags: * IF_NAMED - indicates that the chunk has a 4 byte name before the * data * IF_SUBS - indicates that the chunk's data is made up of chunks * * if_MemFlags specifies the type of memory the chunk should be stuck into, * or -1 to indicate no memory be allocated (ic_Data will be NULL) */ IFFSCAN { ulong if_Form; ulong if_Type; uword if_Flags; uword if_Reserved; ulong if_MemFlags; int (*if_Func)(); };