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