⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apple.h

📁 创建一个符合iso-9660标准的iso文件系统
💻 H
字号:
/* @(#)apple.h	1.3 00/04/27 joerg, Copyright 1997, 1998, 1999, 2000 James Pearson *//* *      Copyright (c) 1997, 1998, 1999, 2000 James Pearson * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING.  If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. *//* * apple.h:	cut down macfile.h from CAP distribution */#ifndef _APPLE_H#define _APPLE_H#include "mactypes.h"#ifndef O_BINARY#define O_BINARY 0#endif /* O_BINARY */#ifdef _WIN32_TEST#undef UNICODE#include <windows.h>#endif /* _WIN32 */#ifndef MIN#define MIN(a,b) (((a)<(b))?(a):(b))#endif /* MIN */#define CT_SIZE		4			/* Size of type/creator */#define NUMMAP		512			/* initial number of maps */#define BLANK		"    "			/* blank type/creator */#define DEFMATCH	"*"			/* default mapping extension */typedef struct {	char		*extn;			/* filename extension */	int		elen;			/* length of extension */	char		type[CT_SIZE+1];	/* extension type */	char		creator[CT_SIZE+1];	/* extension creator */	unsigned short	fdflags;		/* finder flags */} afpmap;/* from "data.h" - libhfs routines */unsigned long d_toutime	__PR((unsigned long));long d_getl		__PR((unsigned char *));short d_getw		__PR((unsigned char *));/* for libfile routines */int init_magic		__PR((char *));char * get_magic_match	__PR((const char *));typedef unsigned char byte;typedef unsigned char word[2];typedef unsigned char dword[4];#define INFOLEN 32		/* Finder info is 32 bytes */typedef struct {	/* base finder information */	char fdType[4];			/* File type [4] */	char fdCreator[4];		/* File creator [8] */	word fdFlags;			/* Finder flags [10] */	word fdLocation[2];		/* File's location [14] */	word fdFldr;			/* File's window [16] */	/* extended finder information */	word fdIconID;			/* Icon ID [18] */	word fdUnused[3];		/* Unused [24] */	byte fdScript;			/* Script system used [25] */	byte fdXFlags;			/* Reserved [26] */	word fdComment;			/* Comment ID [28] */	dword fdPutAway;		/* Home directory ID [32] */} Finfo;typedef struct {	/* base finder information */	word frRect[4];			/* Folder's rectangle [8] */	word frFlags;			/* Finder flags [10] */	word frLocation[2];		/* Folder's location [14] */	word frView;			/* Folder's view [16] */	/* extended finder information */	word frScroll[2];		/* Folder's scroll position [20] */	dword frOpenChain;		/* ID's of open folders [24] */	byte frScript;			/* Script system used [25] */	byte frXFlags;			/* Reserved [26] */	word frComment;			/* Comment ID [28] */	dword frPutAway;		/* Home directory ID [32] */} Dinfo;/****** TYPE_CAP ******//* * taken from the CAP distribution: * macfile.h - header file with Macintosh file definitions  * * AppleTalk package for UNIX (4.2 BSD). * * Copyright (c) 1986, 1987, 1988 by The Trustees of Columbia University in the * City of New York. * * Edit History: * *  Sept 1987	Created by Charlie * */#ifndef USE_MAC_DATES#define	USE_MAC_DATES#endif /* USE_MAC_DATES */#define MAXCLEN 199		/* max size of a comment string */#define FINFOLEN 32		/* Finder info is 32 bytes */#define MAXMACFLEN 31		/* max Mac file name length */typedef struct {  byte finderinfo[INFOLEN];	/* Finder info */  word fi_attr;			/* attributes */#define FI_MAGIC1 255  byte fi_magic1;		/* was: length of comment */#define FI_VERSION 0x10		/* version major 1, minor 0 */				/* if we have more than 8 versions wer're */				/* doiong something wrong anyway */  byte fi_version;		/* version number */#define FI_MAGIC 0xda  byte fi_magic;		/* magic word check */  byte fi_bitmap;		/* bitmap of included info */#define FI_BM_SHORTFILENAME 0x1	/* is this included? */#define FI_BM_MACINTOSHFILENAME 0x2 /* is this included? */  byte fi_shortfilename[12+1];	/* possible short file name */  byte fi_macfilename[32+1];	/* possible macintosh file name */  byte fi_comln;		/* comment length */  byte fi_comnt[MAXCLEN+1];	/* comment string */#ifdef USE_MAC_DATES  byte fi_datemagic;		/* sanity check */#define FI_MDATE 0x01		/* mtime & utime are valid */#define FI_CDATE 0x02		/* ctime is valid */  byte fi_datevalid;		/* validity flags */  byte fi_ctime[4];		/* mac file create time */  byte fi_mtime[4];		/* mac file modify time */  byte fi_utime[4];		/* (real) time mtime was set */#endif /* USE_MAC_DATES */} FileInfo;/* Atribute flags */#define FI_ATTR_SETCLEAR 0x8000 /* set-clear attributes */#define FI_ATTR_READONLY 0x20	/* file is read-only */#define FI_ATTR_ROPEN 0x10	/* resource fork in use */#define FI_ATTR_DOPEN 0x80	/* data fork in use */#define FI_ATTR_MUSER 0x2	/* multi-user */#define FI_ATTR_INVISIBLE 0x1	/* invisible *//**** MAC STUFF *****//* Flags */#define FNDR_fOnDesk 0x1#define FNDR_fHasBundle 0x2000#define FNDR_fInvisible 0x4000/* locations */#define FNDR_fTrash -3	/* File in Trash */#define FNDR_fDesktop -2	/* File on desktop */#define FNDR_fDisk 0	/* File in disk window *//****** TYPE_ESHARE ******//* *	Information supplied by Jens-Uwe Mager (jum@helios.de) */#define ES_VERSION 	0x0102#define ES_MAGIC 	0x3681093#define ES_INFOLEN	32#define ES_INFO_SIZE	512typedef struct {	dword	  	magic;	dword	  	serno;			/* written only, never read */	word	  	version;	word	  	attr;			/* invisible... */	word	  	openMax;		/* max number of opens */	word	  	filler0;	dword	  	backupCleared;		/* time backup bit cleared */	dword		id;			/* dir/file id */        dword		createTime;             /* unix format */        dword		backupTime;             /* unix format */	byte		finderinfo[INFOLEN];	/* Finder info */} es_FileInfo;/****** TYPE_USHARE ******//* similar to the EtherShare layout, but the finder info stuff is different   info provided by: Phil Sylvester <psylvstr@interaccess.com> */typedef struct {	byte		finderinfo[INFOLEN];	/* Finder info */	dword		btime;			/* mac file backup time [36]*/	byte		unknown2[4];		/* ignore [40] */	dword		ctime;			/* mac file create time [44]*/	byte		unknown3[8];		/* ignore [52] */	dword		mtime;			/* mac file modify time [56]*/	byte		unknown4[456];		/* ignore [512] */} us_FileInfo;/****** TYPE_DOUBLE, TYPE_SINGLE ******//* *	Taken from cvt2cap (c) May 1988, Paul Campbell */typedef struct {	dword id;	dword offset;	dword length;} a_entry;typedef struct {	dword   magic;	dword   version;	char    home[16];	word    nentries;	a_entry	entries[1];} a_hdr;#define A_HDR_SIZE	26#define A_ENTRY_SIZE	sizeof(a_entry)#define A_VERSION1	0x00010000#define A_VERSION2	0x00020000#define APPLE_SINGLE	0x00051600#define APPLE_DOUBLE	0x00051607#define ID_DATA		1#define ID_RESOURCE	2#define ID_NAME		3#define ID_FINDER	9/****** TYPE_MACBIN ******//* *	taken from capit.c by Nigel Perry, np@doc.ic.ac.uk which is adapted *	from unmacbin by John M. Sellens, jmsellens@watdragon.uwaterloo.ca */#define MB_NAMELEN 63              /* maximum legal Mac file name length */#define MB_SIZE 128/* * Format of a bin file: * A bin file is composed of 128 byte blocks.  The first block is the * info_header (see below).  Then comes the data fork, null padded to fill the * last block.  Then comes the resource fork, padded to fill the last block.  A * proposal to follow with the text of the Get Info box has not been implemented, * to the best of my knowledge.  Version, zero1 and zero2 are what the receiving * program looks at to determine if a MacBinary transfer is being initiated. */ typedef struct {     /* info file header (128 bytes). Unfortunately, these                        longs don't align to word boundaries */            byte version;           /* there is only a version 0 at this time */            byte nlen;              /* Length of filename. */            byte name[MB_NAMELEN];  /* Filename */            byte type[4];           /* File type. */            byte auth[4];           /* File creator. */            byte flags;             /* file flags: LkIvBnSyBzByChIt */            byte zero1;             /* Locked, Invisible,Bundle, System */                                    /* Bozo, Busy, Changed, Init */            byte icon_vert[2];      /* Vertical icon position within window */            byte icon_horiz[2];     /* Horizontal icon postion in window */            byte window_id[2];      /* Window or folder ID. */            byte protect;           /* = 1 for protected file, 0 otherwise */            byte zero2;            byte dflen[4];          /* Data Fork length (bytes) - most sig.  */            byte rflen[4];          /* Resource Fork length       byte first */            byte cdate[4];          /* File's creation date. */            byte mdate[4];          /* File's "last modified" date. */            byte ilen[2];           /* GetInfo message length */	    byte flags2;            /* Finder flags, bits 0-7 */	    byte unused[14];       	    byte packlen[4];        /* length of total files when unpacked */	    byte headlen[2];        /* length of secondary header */	    byte uploadvers;        /* Version of MacBinary II that the uploading program is written for */	    byte readvers;          /* Minimum MacBinary II version needed to read this file */            byte crc[2];            /* CRC of the previous 124 bytes */	    byte padding[2];        /* two trailing unused bytes */} mb_info;/****** TYPE_FE ******//* Information provided by Mark Weinstein <mrwesq@earthlink.net> */typedef struct {	byte	nlen;	byte	name[31];	byte	finderinfo[INFOLEN];	/* Finder info */	byte	cdate[4];	byte	mdate[4];	byte	bdate[4];	byte	fileid[4];	byte	sname[8];	byte	ext[3];	byte	pad;} fe_info;#define FE_SIZE 92/****** TYPE_SGI ******/typedef struct {	byte    unknown1[8];	byte	finderinfo[INFOLEN];	/* Finder info */	byte    unknown2[214];	byte    name[32];	byte    unknown3[14];} sgi_info;#define SGI_SIZE 300/****** TYPE_SFM ******//* Information provided by Lou Rieger <lrieger@meridiancg.com> taken from   an email from Eddie Bowers <eddieb@microsoft.com> */typedef struct {	byte	afpi_Signature[4];	/* Must be 0x00504641 */	byte	afpi_Version[4];	/* Must be 0x00010000 */	byte	afpi_Reserved1[4];	byte	afpi_BackupTime[4];	/* Backup time for the file/dir */	byte	finderinfo[INFOLEN];	/* Finder info */	byte	afpi_ProDosInfo[6];	/* ProDos Info */	byte	afpi_Reserved2[6];} sfm_info;#define SFM_MAGIC	0x00504641#define SFM_VERSION	0x00010000#endif /* _APPLE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -