1 /*- 2 * Copyright (c) 1993, 1994 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley 6 * by Pace Willisson (pace@blitz.com). The Rock Ridge Extension 7 * Support code is derived from software contributed to Berkeley 8 * by Atsushi Murai (amurai@spec.co.jp). 9 * 10 * %sccs.include.redist.c% 11 * 12 * @(#)iso_rrip.h 8.2 (Berkeley) 01/23/94 13 */ 14 15 16 /* 17 * Analyze function flag (similar to RR field bits) 18 */ 19 #define ISO_SUSP_ATTR 0x0001 20 #define ISO_SUSP_DEVICE 0x0002 21 #define ISO_SUSP_SLINK 0x0004 22 #define ISO_SUSP_ALTNAME 0x0008 23 #define ISO_SUSP_CLINK 0x0010 24 #define ISO_SUSP_PLINK 0x0020 25 #define ISO_SUSP_RELDIR 0x0040 26 #define ISO_SUSP_TSTAMP 0x0080 27 #define ISO_SUSP_IDFLAG 0x0100 28 #define ISO_SUSP_EXTREF 0x0200 29 #define ISO_SUSP_CONT 0x0400 30 #define ISO_SUSP_OFFSET 0x0800 31 #define ISO_SUSP_STOP 0x1000 32 #define ISO_SUSP_UNKNOWN 0x8000 33 34 typedef struct { 35 struct iso_node *inop; 36 int fields; /* interesting fields in this analysis */ 37 daddr_t iso_ce_blk; /* block of continuation area */ 38 off_t iso_ce_off; /* offset of continuation area */ 39 int iso_ce_len; /* length of continuation area */ 40 struct iso_mnt *imp; /* mount structure */ 41 ino_t *inump; /* inode number pointer */ 42 char *outbuf; /* name/symbolic link output area */ 43 u_short *outlen; /* length of above */ 44 u_short maxlen; /* maximum length of above */ 45 int cont; /* continuation of above */ 46 } ISO_RRIP_ANALYZE; 47 48 int cd9660_rrip_analyze __P((struct iso_directory_record *isodir, 49 struct iso_node *inop, struct iso_mnt *imp)); 50 int cd9660_rrip_getname __P((struct iso_directory_record *isodir, 51 char *outbuf, u_short *outlen, 52 ino_t *inump, struct iso_mnt *imp)); 53 int cd9660_rrip_getsymname __P((struct iso_directory_record *isodir, 54 char *outbuf, u_short *outlen, 55 struct iso_mnt *imp)); 56 int cd9660_rrip_offset __P((struct iso_directory_record *isodir, 57 struct iso_mnt *imp)); 58