/*-1* SPDX-License-Identifier: BSD-3-Clause2*3* Copyright (c) 1993, 19944* The Regents of the University of California. All rights reserved.5*6* This code is derived from software contributed to Berkeley7* by Pace Willisson ([email protected]). The Rock Ridge Extension8* Support code is derived from software contributed to Berkeley9* by Atsushi Murai ([email protected]).10*11* Redistribution and use in source and binary forms, with or without12* modification, are permitted provided that the following conditions13* are met:14* 1. Redistributions of source code must retain the above copyright15* notice, this list of conditions and the following disclaimer.16* 2. Redistributions in binary form must reproduce the above copyright17* notice, this list of conditions and the following disclaimer in the18* documentation and/or other materials provided with the distribution.19* 3. Neither the name of the University nor the names of its contributors20* may be used to endorse or promote products derived from this software21* without specific prior written permission.22*23* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND24* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE25* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE26* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE27* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL28* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS29* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)30* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT31* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY32* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF33* SUCH DAMAGE.34*/3536#ifndef _ISOFS_CD9660_ISO_RRIP_H_37#define _ISOFS_CD9660_ISO_RRIP_H_3839/*40* Analyze function flag (similar to RR field bits)41*/42#define ISO_SUSP_ATTR 0x000143#define ISO_SUSP_DEVICE 0x000244#define ISO_SUSP_SLINK 0x000445#define ISO_SUSP_ALTNAME 0x000846#define ISO_SUSP_CLINK 0x001047#define ISO_SUSP_PLINK 0x002048#define ISO_SUSP_RELDIR 0x004049#define ISO_SUSP_TSTAMP 0x008050#define ISO_SUSP_IDFLAG 0x010051#define ISO_SUSP_EXTREF 0x020052#define ISO_SUSP_CONT 0x040053#define ISO_SUSP_OFFSET 0x080054#define ISO_SUSP_STOP 0x100055#define ISO_SUSP_UNKNOWN 0x80005657#ifdef _KERNEL58typedef struct {59struct iso_node *inop;60int fields; /* interesting fields in this analysis */61daddr_t iso_ce_blk; /* block of continuation area */62off_t iso_ce_off; /* offset of continuation area */63int iso_ce_len; /* length of continuation area */64struct iso_mnt *imp; /* mount structure */65ino_t *inump; /* inode number pointer */66char *outbuf; /* name/symbolic link output area */67u_short *outlen; /* length of above */68u_short maxlen; /* maximum length of above */69int cont; /* continuation of above */70} ISO_RRIP_ANALYZE;7172struct iso_directory_record;7374int cd9660_rrip_analyze(struct iso_directory_record *isodir,75struct iso_node *inop, struct iso_mnt *imp);76int cd9660_rrip_getname(struct iso_directory_record *isodir,77char *outbuf, u_short *outlen,78ino_t *inump, struct iso_mnt *imp);79int cd9660_rrip_getsymname(struct iso_directory_record *isodir,80char *outbuf, u_short *outlen,81struct iso_mnt *imp);82int cd9660_rrip_offset(struct iso_directory_record *isodir,83struct iso_mnt *imp);84#endif /* _KERNEL */8586#endif /* _ISOFS_CD9660_ISO_RRIP_H_ */878889