iso_rrip.h 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* $OpenBSD: iso_rrip.h,v 1.7 2013/06/11 16:42:15 deraadt Exp $ */
  2. /* $NetBSD: iso_rrip.h,v 1.3 1994/06/29 06:32:02 cgd Exp $ */
  3. /*-
  4. * Copyright (c) 1993, 1994
  5. * The Regents of the University of California. All rights reserved.
  6. *
  7. * This code is derived from software contributed to Berkeley
  8. * by Pace Willisson (pace@blitz.com). The Rock Ridge Extension
  9. * Support code is derived from software contributed to Berkeley
  10. * by Atsushi Murai (amurai@spec.co.jp).
  11. *
  12. * Redistribution and use in source and binary forms, with or without
  13. * modification, are permitted provided that the following conditions
  14. * are met:
  15. * 1. Redistributions of source code must retain the above copyright
  16. * notice, this list of conditions and the following disclaimer.
  17. * 2. Redistributions in binary form must reproduce the above copyright
  18. * notice, this list of conditions and the following disclaimer in the
  19. * documentation and/or other materials provided with the distribution.
  20. * 3. Neither the name of the University nor the names of its contributors
  21. * may be used to endorse or promote products derived from this software
  22. * without specific prior written permission.
  23. *
  24. * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  25. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  26. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  27. * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  28. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  29. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  30. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  31. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  32. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  33. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  34. * SUCH DAMAGE.
  35. *
  36. * @(#)iso_rrip.h 8.2 (Berkeley) 1/23/94
  37. */
  38. /*
  39. * Analyze function flag (similar to RR field bits)
  40. */
  41. #define ISO_SUSP_ATTR 0x0001
  42. #define ISO_SUSP_DEVICE 0x0002
  43. #define ISO_SUSP_SLINK 0x0004
  44. #define ISO_SUSP_ALTNAME 0x0008
  45. #define ISO_SUSP_CLINK 0x0010
  46. #define ISO_SUSP_PLINK 0x0020
  47. #define ISO_SUSP_RELDIR 0x0040
  48. #define ISO_SUSP_TSTAMP 0x0080
  49. #define ISO_SUSP_IDFLAG 0x0100
  50. #define ISO_SUSP_EXTREF 0x0200
  51. #define ISO_SUSP_CONT 0x0400
  52. #define ISO_SUSP_OFFSET 0x0800
  53. #define ISO_SUSP_STOP 0x1000
  54. #define ISO_SUSP_UNKNOWN 0x8000
  55. typedef struct {
  56. struct iso_node *inop;
  57. int fields; /* interesting fields in this analysis */
  58. daddr_t iso_ce_blk; /* block of continuation area */
  59. off_t iso_ce_off; /* offset of continuation area */
  60. int iso_ce_len; /* length of continuation area */
  61. struct iso_mnt *imp; /* mount structure */
  62. cdino_t *inump; /* inode number pointer */
  63. char *outbuf; /* name/symbolic link output area */
  64. u_short *outlen; /* length of above */
  65. u_short maxlen; /* maximum length of above */
  66. int cont; /* continuation of above */
  67. } ISO_RRIP_ANALYZE;
  68. int cd9660_rrip_analyze(struct iso_directory_record *isodir,
  69. struct iso_node *inop, struct iso_mnt *imp);
  70. int cd9660_rrip_getname(struct iso_directory_record *isodir,
  71. char *outbuf, u_short *outlen,
  72. cdino_t *inump, struct iso_mnt *imp);
  73. int cd9660_rrip_getsymname(struct iso_directory_record *isodir,
  74. char *outbuf, u_short *outlen,
  75. struct iso_mnt *imp);
  76. int cd9660_rrip_offset(struct iso_directory_record *isodir,
  77. struct iso_mnt *imp);