Files
Arquivotheca.SunOS-4.1.4/sys/pcfs/pc_dir.h
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

81 lines
2.1 KiB
C

/* @(#)pc_dir.h 1.1 94/10/31 SMI */
/*
* Copyright (c) 1989 by Sun Microsystems, Inc.
*/
#define PCFNAMESIZE 8
#define PCFEXTSIZE 3
#define PCMAXPATHLEN 64
struct pctime {
short pct_time; /* hh:mm:ss (little endian) */
short pct_date; /* yy:mm:dd (little endian) */
};
/*
* Shifts and masks for time and date fields, in host byte order.
*/
#define SECSHIFT 0
#define SECMASK 0x1F
#define MINSHIFT 5
#define MINMASK 0x3F
#define HOURSHIFT 11
#define HOURMASK 0x1F
#define DAYSHIFT 0
#define DAYMASK 0x1F
#define MONSHIFT 5
#define MONMASK 0x0F
#define YEARSHIFT 9
#define YEARMASK 0x7F
struct pcdir {
char pcd_filename[PCFNAMESIZE]; /* file name */
char pcd_ext[PCFEXTSIZE]; /* file extension */
u_char pcd_attr;
long pcd_gen; /* generation number for NFS */
u_char pcd_unused[6];
struct pctime pcd_mtime; /* create/modify time */
short pcd_scluster; /* starting cluster (little endian) */
long pcd_size; /* file size (little endian) */
};
#ifdef notdef
struct pcfid {
u_short pcfid_len;
long pcfid_fileno;
long pcfid_gen;
};
#endif notdef
/*
* The first char of the file name has special meaning as follows:
*/
#define PCD_UNUSED ((char)0x00) /* entry has never been used */
#define PCD_ERASED ((char)0xE5) /* entry was erased */
/*
* File attributes.
*/
#define PCA_RDONLY 0x01 /* file is read only */
#define PCA_HIDDEN 0x02 /* file is hidden */
#define PCA_SYSTEM 0x04 /* system file */
#define PCA_LABEL 0x08 /* entry contains the volume label */
#define PCA_DIR 0x10 /* subdirectory */
#define PCA_ARCH 0x20 /* file has been modified since last backup */
/*
* macros for converting to/from upper or lower case.
* users may give and get names in lower case, but they are stored on the
* disk in upper case to be PCDOS compatable
*/
#define toupper(C) (((C) >= 'a' && (C) <= 'z')? (C) - 'a' + 'A': (C))
#define tolower(C) (((C) >= 'A' && (C) <= 'Z')? (C) - 'A' + 'a': (C))
#ifdef KERNEL
extern void pc_tvtopct(); /* convert timeval to pctime */
extern void pc_pcttotv(); /* convert pctime to timeval */
extern int pc_validchar(); /* check character valid in filename */
#endif