xref: /csrg-svn/sys/isofs/cd9660/iso_rrip.h (revision 65855)
165789Smckusick /*-
265789Smckusick  * Copyright (c) 1993, 1994
365789Smckusick  *	The Regents of the University of California.  All rights reserved.
465789Smckusick  *
565789Smckusick  * This code is derived from software contributed to Berkeley
665789Smckusick  * by Pace Willisson (pace@blitz.com).  The Rock Ridge Extension
765789Smckusick  * Support code is derived from software contributed to Berkeley
865789Smckusick  * by Atsushi Murai (amurai@spec.co.jp).
965789Smckusick  *
1065789Smckusick  * %sccs.include.redist.c%
1165789Smckusick  *
12*65855Smckusick  *	@(#)iso_rrip.h	8.2 (Berkeley) 01/23/94
1365789Smckusick  */
1465789Smckusick 
1565789Smckusick 
1665789Smckusick /*
1765789Smckusick  *	Analyze function flag (similar to RR field bits)
1865789Smckusick  */
1965789Smckusick #define	ISO_SUSP_ATTR		0x0001
2065789Smckusick #define	ISO_SUSP_DEVICE		0x0002
2165789Smckusick #define	ISO_SUSP_SLINK		0x0004
2265789Smckusick #define	ISO_SUSP_ALTNAME	0x0008
2365789Smckusick #define	ISO_SUSP_CLINK		0x0010
2465789Smckusick #define	ISO_SUSP_PLINK		0x0020
2565789Smckusick #define	ISO_SUSP_RELDIR		0x0040
2665789Smckusick #define	ISO_SUSP_TSTAMP		0x0080
2765789Smckusick #define	ISO_SUSP_IDFLAG		0x0100
2865789Smckusick #define	ISO_SUSP_EXTREF		0x0200
2965789Smckusick #define	ISO_SUSP_CONT		0x0400
3065789Smckusick #define	ISO_SUSP_OFFSET		0x0800
3165789Smckusick #define	ISO_SUSP_STOP		0x1000
3265789Smckusick #define	ISO_SUSP_UNKNOWN	0x8000
3365789Smckusick 
3465789Smckusick typedef struct {
3565789Smckusick 	struct iso_node	*inop;
3665789Smckusick 	int		fields;		/* interesting fields in this analysis */
3765789Smckusick 	daddr_t		iso_ce_blk;	/* block of continuation area */
3865789Smckusick 	off_t		iso_ce_off;	/* offset of continuation area */
3965789Smckusick 	int		iso_ce_len;	/* length of continuation area */
4065789Smckusick 	struct iso_mnt	*imp;		/* mount structure */
4165789Smckusick 	ino_t		*inump;		/* inode number pointer */
4265789Smckusick 	char		*outbuf;	/* name/symbolic link output area */
4365789Smckusick 	u_short		*outlen;	/* length of above */
4465789Smckusick 	u_short		maxlen;		/* maximum length of above */
4565789Smckusick 	int		cont;		/* continuation of above */
4665789Smckusick } ISO_RRIP_ANALYZE;
4765789Smckusick 
48*65855Smckusick int cd9660_rrip_analyze __P((struct iso_directory_record *isodir,
4965789Smckusick 			    struct iso_node *inop, struct iso_mnt *imp));
50*65855Smckusick int cd9660_rrip_getname __P((struct iso_directory_record *isodir,
5165789Smckusick 			    char *outbuf, u_short *outlen,
5265789Smckusick 			    ino_t *inump, struct iso_mnt *imp));
53*65855Smckusick int cd9660_rrip_getsymname __P((struct iso_directory_record *isodir,
5465789Smckusick 			       char *outbuf, u_short *outlen,
5565789Smckusick 			       struct iso_mnt *imp));
56*65855Smckusick int cd9660_rrip_offset __P((struct iso_directory_record *isodir,
5765789Smckusick 			   struct iso_mnt *imp));
58