home *** CD-ROM | disk | FTP | other *** search
- /* hfs.h: */
-
- #ifndef _DCC
- #define __unaligned /* empty */
- #endif
-
- typedef struct ext_descr {
- t_ushort StABN;
- t_ushort NumABlks;
- } t_ext_descr;
-
- typedef t_ext_descr t_extdatarec[3];
-
- typedef __unaligned struct mdb {
- t_ushort SigWord;
- t_ulong CrDate;
- t_ulong LsMod;
- t_ushort Atrb;
- t_ushort NmFls;
- t_ushort VBMSt;
- t_ushort AllocPtr;
- t_ushort NmAlBlks;
- t_ulong AlBlkSiz;
- t_ulong ClpSiz;
- t_ushort AlBlSt;
- t_ulong NxtCNID;
- t_ushort FreeBks;
- t_uchar VolNameLen;
- t_uchar VolName[27];
- t_ulong VolBkUp;
- t_ushort VSeqNum;
- t_ulong WrCnt;
- t_ulong XTClpSiz;
- t_ulong CTClpSiz;
- t_ushort NmRtDirs;
- t_ulong FilCnt;
- t_ulong DirCnt;
- t_ulong FndrInfo[8];
- t_ushort VCSize;
- t_ushort VBMCSize;
- t_ushort CtlCSize;
- t_ulong XTFlSize;
- t_extdatarec XTExtRec;
- t_ulong CTFlSize;
- t_extdatarec CTExtRec;
- } t_mdb;
-
- typedef __unaligned struct node_descr {
- t_ulong FLink;
- t_ulong BLink;
- t_uchar Type;
- t_uchar NHeight;
- t_ushort NRecs;
- t_ushort Reserved;
- } t_node_descr;
-
- typedef __unaligned struct hdr_node {
- t_node_descr node_descr;
- t_ushort Depth;
- t_ulong Root;
- t_ulong NRecs;
- t_ulong FNode;
- t_ulong LNode;
- t_ushort NodeSize;
- t_ushort KeyLen;
- t_ulong NNodes;
- t_ulong Free;
- } t_hdr_node;
-
- typedef __unaligned struct idx_record {
- char length; /* always 0x25 */
- char reserved;
- t_ulong parent_id;
- t_uchar name_length;
- char name[31];
- t_ulong pointer;
- } t_idx_record;
-
- typedef __unaligned struct leaf_record {
- char length;
- char reserved;
- t_ulong parent_id;
- t_uchar name_length;
- char name[1];
- } t_leaf_record;
-
- typedef __unaligned struct dir_record {
- char type;
- char reserved;
- t_ushort Flags;
- t_ushort Val;
- t_ulong DirID;
- t_ulong CrDat;
- t_ulong MdDat;
- t_ulong BkDat;
- } t_dir_record;
-
- typedef __unaligned struct file_record {
- char type;
- char reserved;
- char Flags;
- char Typ;
- char FInfo[16];
- t_ulong FlNum;
- t_ushort StBlk;
- t_ulong LgLen;
- t_ulong PyLen;
- t_ushort RStBlk;
- t_ulong RLgLen;
- t_ulong RPyLen;
- t_ulong CrDat;
- t_ulong MdDat;
- t_ulong BkDat;
- char FXInfo[16];
- t_ushort ClpSize;
- t_extdatarec ExtRec;
- t_extdatarec RExtRec;
- t_ulong Resrv;
- } t_file_record;
-
- typedef __unaligned struct dir_thread_record {
- char type;
- char reserved;
- t_ulong Resrv[2];
- t_ulong ParID;
- t_uchar CNameLen;
- t_uchar CName[31];
- } t_dir_thread_record;
-
- typedef __unaligned struct file_thread_record {
- char type;
- char reserved;
- t_ulong Resrv[2];
- t_ulong ParID;
- t_uchar CNameLen;
- t_uchar CName[31];
- } t_file_thread_record;
-
- typedef union catalog_record {
- t_dir_record d;
- t_file_record f;
- t_dir_thread_record dt;
- t_file_thread_record ft;
- } t_catalog_record;
-
- int HFS_Find_Master_Directory_Block (CDROM *p_cd, t_mdb *p_mdb);
- t_bool Uses_HFS_Protocol (CDROM *p_cd, int *p_skip);
- t_bool HFS_Get_Header_Node (CDROM *p_cd, t_ulong p_mdb_pos,
- t_mdb *p_mdb, t_hdr_node *p_hdr_node);
- t_node_descr *HFS_Get_Node (CDROM *p_cd, t_ulong p_mdb_pos, t_mdb *p_mdb,
- t_ulong p_node);
- void Convert_Mac_Characters (char *p_buf, int p_buf_len);
-
- t_bool HFS_Init_Vol_Info (VOLUME *p_volume, int p_start_block);
-
-