home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cdrom.com/pub/cdrom/
/
cdrom.tar
/
cdrom
/
rockridge
/
rrg.15
/
rrip.troff
Wrap
Text File
|
1992-08-19
|
143KB
|
6,121 lines
.nr O 1.2i
.nr W 6i
.PH "" \" Supress the -1- page header on the first page
.\" The entire document uses fonts designated as numbers so the following
.\" three lines may be changed to change the "look" of the document.
.fp 1 R \" This is the standard (i.e. non-Bold/Italic) font position
.fp 2 I \" This is the Italic font position
.fp 3 B \" This is the Bold font position
.fp 4 S \" This is the HP logo
.nr P 0 \" Set first page to be page 1
.\" HF sets type for .H headings 3==bold, 2==italics for levels 1-7
.ds HF 3 3 3 3 3 3 3
.\" HF sets size for .H headings, for level 1-7
.ds HP 14 12 11 11 11 11 11
.nr Ej 1 \" Start level 1 headings on new page.
.nr Hb 6 \" Headings 7 & up are part of the following paragraph
.nr Hs 6 \" Headings 1-6 are automatically followed by blank line
.nr Hi 1 \" Indent text following heading like paragraph (default)
.nr Hc 0 \" No headings are centered (default)
.nr Hu 1 \" Unnumbered headings level 1
.tr ~ \" Use ~ for unpaddable space character
.ad b \" Right-justify on
.nr Hy 0 \" No hyphenation
.nr Pi 5 \" Indent paragraphs 5 spaces
.nr Pt 1 \" Indent paragraphs Pi spaces
.nr Cl 6 \" Save first 6 heading levels for table of contents
.\" Set up global formatting stuff
.in 0i
.ll 6i
.vs 12p
.pl 10.5i
.ps 10
.\" Set up the page count as if no coversheet will be added. If there is
.\" one added, it will override .nr PC to be one more than the amount below.
.nr PC 41
.\" Set this flag to be 0 (no coversheet), if a coversheet is there, it
.\" will override it.
.nr CS 0
~
.sp |2.5i
.ce 17
.ps 25
.ft 3
ROCK RIDGE INTERCHANGE
PROTOCOL
.ps 20
.ft 3
VERSION 1
.sp 80p
.ps 20
.ft 3
AN IS0 9660:1988 COMPLIANT APPROACH
TO PROVIDING ADEQUATE CD-ROM SUPPORT
FOR POSIX FILE SYSTEM SEMANTICS
.sp 80p
.ps 16
.ft 3
ROCK RIDGE TECHNICAL
WORKING GROUP
.ps 12
.ft 1
.sp 3v
Revision 1.09
.sp 3v
.\" Put names of authors here, if any
cdtec@dgdo.Eng.Sun.COM
.ps 14
.sp 3v
PROPOSAL
.bp
.\"
.\" If no coversheet, set up odd/even different headers & footers
.\" else set up the same headers & footers
.ie \n(CS \{\
. OH "'Rock Ridge Group''Rock Ridge Interchange Protocol'"
. EH "'Rock Ridge Group''Rock Ridge Interchange Protocol'"
. bp
. OF "'\\*(DT' 'Page \\\\nP of \\\\n(PC'"
. EF "'\\*(DT' 'Page \\\\nP of \\\\n(PC'" \}
.el \{\
. OH "'Rock Ridge Group''Rock Ridge Interchange Protocol'"
. EH "'Rock Ridge Interchange Protocol''Rock Ridge Group'"
. bp
. OF "'\\*(DT' 'Page \\\\nP of \\\\n(PC'"
. EF "'Page \\\\nP of \\\\n(PC' '\\*(DT'" \}
.rs
.ce
( This page should be replaced with a blank page for back of title )
.bp
.ce
( This page should be replaced with the Table of Contents )
.bp
.ce
( This page should be replaced with a blank page for back of TOC )
.bp
.ce
( This page should be replaced with the List of Tables )
.bp
.ce
( This page should be replaced with a blank page for back of Tables )
.pn 1
.sp
.H 1 "PREFACE"
.sp
.H 2 "Purpose and Scope"
.sp
Producers and users of POSIX compliant systems and software have faced a
significant, yet artificial, barrier to their effectively using CD-ROM
technology for software distribution and information publishing --
ISO 9660:1988 alone provides inadequate support for delivery of POSIX
file system information.
The Rock Ridge Group was formed to generate a
proposed standard for utilizing the System Use Areas provided by the
ISO 9660 standard to record complete POSIX file system semantics.
This proposal utilizes the System Use Sharing Protocol for recording this
information.
.sp
.H 2 "Summary of Sections"
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \wSection 1
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wSection 2
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wSection 3
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wSection 4
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wSection 5
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wSection 6
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wContains this preface.
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wContains an overview of the Rock Ridge Interchange Protocol.
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wContains an overview of the notation used in this document.
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wContains the Rock Ridge Interchange Protocol.
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wContains the RRIP Application Programming Interface.
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wContains the bibliography.
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 141 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Section 1\h'|\n(41u'Contains this preface.
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Section 2\h'|\n(41u'Contains an overview of the Rock Ridge Interchange Protocol.
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Section 3\h'|\n(41u'Contains an overview of the notation used in this document.
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Section 4\h'|\n(41u'Contains the Rock Ridge Interchange Protocol.
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Section 5\h'|\n(41u'Contains the RRIP Application Programming Interface.
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Section 6\h'|\n(41u'Contains the bibliography.
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-9
.bp
.\" Blank page for back of this chapter
.ce
.sp
.H 1 "OVERVIEW"
.sp
The Rock Ridge Interchange Protocol (RRIP) specifies an extension to the
ISO 9660 format for CD-ROM which enables the recording of POSIX File
System semantics.
The RRIP utilizes the System Use Sharing Protocol (SUSP) to specify
the definition of a set of System Use Fields for this purpose.
.sp
The RRIP specifies the definition of a set of System Use Fields for
recording:
.sp
.VL 15
.BL
.LI
uid, gid, and permissions
.LI
file mode bits, file types, setuid, setgid, and sticky bit
.LI
file links
.LI
device nodes
.LI
symbolic links
.LI
POSIX file names
.LI
reconstruction of deep directories
.LI
time stamps
.LE
.bp
.\" Blank page for back of this chapter
.ce
.sp
.H 1 "TERMINOLOGY AND NOTATION"
.sp
It is assumed that the RRIP is being recorded within an ISO 9660:1988
compliant volume using the System Use Sharing Protocol (SUSP:1991A).
Unless defined herein, or otherwise specified, terms shall be as defined
in ISO 9660:1988 or SUSP:1991A.
.sp
The following notation is used in this document.
.sp
.H 2 "Decimal and Hexadecimal Notation"
.sp
Numbers in decimal notation are represented by decimal digits, namely
0 to 9.
.sp
Numbers in hexadecimal notation are represented by hexadecimal digits,
namely 0 to 9 and A to F, shown in parentheses.
E.g. the hexadecimal number 7F will be written as (7F).
.sp
.H 2 "File Naming Conventions"
.sp
In all fields defined in ISO 9660:1988, the character set to be used
shall be as specified in ISO 9660.
The character set to be used in the System Use Fields defined herein
shall depend upon whether the fields are recorded in a directory tree
associated with a Primary Volume Descriptor or a Supplementary Volume
Descriptor.
.sp
.H 3 "Primary Volume Descriptor File Naming Convention"
.sp
Within a directory tree identified by a Primary Volume Descriptor of
an ISO 9660 volume, the character set used in the System Use Fields
defined for the RRIP shall be the ISO Standard 8859-1:1987, as
specified in the X/Open Portability Guide Issue 3, XSI Supplementary
Definitions.
For general portability across most POSIX compatible systems, the
7-bit U.S. ASCII character set should be used.
.sp
The POSIX File Naming Convention states that the filename may be
composed of any character except slash (2F) and the null byte (00).
The special filename, dot (2E), refers to the directory specified
by its predecessor.
The special filename dot-dot (2E)(2E), refers to the parent directory
of its predecessor directory.
.sp
For maximum portability across implementations conforming to the
POSIX Standard, filenames should only contain the following characters:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \w(41) thru (5A)
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w(61) thru (7A)
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w(30) thru (39)
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w(2E)
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w(5F)
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w(2D)
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \w\'A\' thru \'Z\'
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w\'a\' thru \'z\'
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w\'0\' thru \'9\'
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wperiod
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wunderscore
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \whyphen
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 244 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(41) thru (5A)\h'|\n(41u'\'A\' thru \'Z\'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(61) thru (7A)\h'|\n(41u'\'a\' thru \'z\'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(30) thru (39)\h'|\n(41u'\'0\' thru \'9\'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(2E)\h'|\n(41u'period
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(5F)\h'|\n(41u'underscore
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(2D)\h'|\n(41u'hyphen
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-9
.sp
Upper and lower case letters shall retain their unique identities
between conforming implementations.
.sp
.H 3 "Supplementory Volume Descriptor File Naming Convention"
.sp
Within a directory tree identified by a Supplementary Volume Descriptor
of an ISO 9660 volume, the character set used in the System Use Fields
defined for the RRIP shall be the coded graphic character set(s) identified by
the escape sequence(s) in the Supplementary Volume Descriptor
(c-characters, section 7.4.2, ISO 9660:1988).
.sp
.H 2 "Reader Makes Right"
.sp
Receiving systems which are capable of interpreting the System Use Fields
defined herein, but which cannot handle the full extent of the file naming
convention utilized by this specification may have to restrict themselves
to the use of the ISO 9660 compliant file names stored in the File Identifier
field of the ISO 9660 directory structure.
.sp
Alternatively, the developer of the receiving system may choose to provide
file name conversion capability.
Any such system must provide unique names for all unique files on the disc.
.sp
In general, whenever there is recorded a (potentially) system-specific
identifier or numerical value, accomplishing any necessary modifications
or mapping of these are the responsibility of the receiving system.
This document provides for an Application Programming Interface (API)
to support this function.
.sp
.sp
.H 1 "ROCK RIDGE INTERCHANGE PROTOCOL"
.sp
The Rock Ridge Interchange Protocol (RRIP) utilizes System Use Areas
provided by ISO 9660:1988.
The System Use Area of the Directory Record is used to record the POSIX
file system information.
The System Use Sharing Protocol is used for recording information in
each of these areas.
.sp
.H 2 "System Use Fields Provided by this Specification"
.sp
The Rock Ridge Interchange Protocol defines the following fundamental
System Use Fields:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \w"PX"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"PN"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"SL"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"NM"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"CL"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"PL"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"RE"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"TF"
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w"RR"
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wPOSIX file attributes
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wPOSIX device modes
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wSymbolic link
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wAlternate name
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wChild link
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wParent link
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wRelocated directory
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wTime stamp(s) for a file
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wFlags indicating which fields are recorded
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 302 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"PX"\h'|\n(41u'POSIX file attributes
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"PN"\h'|\n(41u'POSIX device modes
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"SL"\h'|\n(41u'Symbolic link
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"NM"\h'|\n(41u'Alternate name
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"CL"\h'|\n(41u'Child link
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"PL"\h'|\n(41u'Parent link
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"RE"\h'|\n(41u'Relocated directory
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"TF"\h'|\n(41u'Time stamp(s) for a file
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'"RR"\h'|\n(41u'Flags indicating which fields are recorded
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-12
.sp
Additionally, this specification provides required identification information
to be recorded in an "ER" (Extensions Reference) System Use Field for the
purpose of identifying discs on which the Rock Ridge Interchange Protocol
is implemented.
.sp
.H 3 "Description of the PX System Use Field"
.sp
Recording of the "PX" System Use Field in the System Use Area of
each ISO 9660 directory record shall be mandatory.
No more than one
"PX" System Use Field shall appear in (all) the System Use Area(s) for
a single directory record.
.sp
If the file type in a directory record is of type directory, then
the POSIX File Mode Field ([BP 4] in this section) and File Flags (ISO
9660 Format section 9.1.6) should both indicate such, with the
exception of relocated directories, indicated by a "CL" field (section
3.1.5.1), for which the ISO file flags shall indicate a normal file,
but the POSIX File Mode Field shall indicate a directory.
.sp
The format of the "PX" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "PX" type System Use Field.
The bytes in this field shall be (50)(58) ("PX").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "PX" System Use Field.
The number in this field shall be 36 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.bp
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "PX" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 to BP 12 - POSIX File Mode" has the same meaning as the st_mode
defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
This field shall be recorded according to ISO 9660:1988 Format
section 7.3.3.
The valid mask values for this field are combinations of the following:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \wOctal Value
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w\_
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000400
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000200
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000100
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000040
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000020
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000010
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000004
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000002
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0000001
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0004000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0002000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0002000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0001000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0170000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0140000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0120000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0100000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0060000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0020000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0040000
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0010000
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wMeaning
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w\_
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wread permission (owner)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wwrite permission (owner)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wexecute permission (owner)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wread permission (group)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wwrite permission (group)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wexecute permission (group)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wread permission (other)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wwrite permission (other)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wexecute permission (other)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wset user ID on execution
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wset group ID on execution
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wenforced file locking (shared w/ set group ID)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wsave swapped text even after use
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wtype of file
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wsocket
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wsymbolic link
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wregular
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wblock special
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wcharacter special
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wdirectory
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wpipe or FIFO
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 379 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Octal Value \h'|\n(41u'Meaning
.ta \n(46u \n(47u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(46u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(47u'\s0
.vs \n(36u
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000400 \h'|\n(41u'read permission (owner)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000200 \h'|\n(41u'write permission (owner)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000100 \h'|\n(41u'execute permission (owner)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000040 \h'|\n(41u'read permission (group)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000020 \h'|\n(41u'write permission (group)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000010 \h'|\n(41u'execute permission (group)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000004 \h'|\n(41u'read permission (other)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000002 \h'|\n(41u'write permission (other)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0000001 \h'|\n(41u'execute permission (other)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0004000 \h'|\n(41u'set user ID on execution
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0002000 \h'|\n(41u'set group ID on execution
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0002000 \h'|\n(41u'enforced file locking (shared w/ set group ID)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0001000 \h'|\n(41u'save swapped text even after use
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0170000 \h'|\n(41u'type of file
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0140000 \h'|\n(41u'socket
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0120000 \h'|\n(41u'symbolic link
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0100000 \h'|\n(41u'regular
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0060000 \h'|\n(41u'block special
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0020000 \h'|\n(41u'character special
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0040000 \h'|\n(41u'directory
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0010000 \h'|\n(41u'pipe or FIFO
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-28
.sp
.LI "[5]"
"BP 13 to BP 20 - POSIX File Links" has the same meaning as the
st_nlink defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
If the file type described by the directory record is a
directory, the value in this field shall equal the number of
directories in the directory described by this directory record
(i.e. any directory record which has the "directory" bit set,
including the "." and ".." records).
Otherwise, it shall be 1.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LI "[6]"
"BP 21 to BP 28 - POSIX File User ID" has the same meaning as the
st_uid defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.bp
.LI "[7]"
"BP 29 to BP 36 - POSIX File Group ID" has the same meaning as the
st_gid defined in the header sys/stat.h by the IEEE Std 1003.1-1988.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.sp
.sp
.TB "PX System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 54 55 56 57 58 59
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w'P'
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP1)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w'X'
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP2)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \wLENGTH
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP3)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 57 0
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w1
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w(BP4)
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.57
.rm 57
.nr 58 0
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \wFILE MODE
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w(BP5 to BP12)
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.58
.rm 58
.nr 59 0
.nr 38 \wLINKS
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w(BP13 to BP20)
.if \n(59<\n(38 .nr 59 \n(38
.59
.rm 59
.nr 38 1n
.nr 53 0
.nr 40 \n(53+((2*\n(38)/2)
.nr 54 +\n(40
.nr 41 \n(54+((6*\n(38)/2)
.nr 55 +\n(41
.nr 42 \n(55+((6*\n(38)/2)
.nr 56 +\n(42
.nr 43 \n(56+((6*\n(38)/2)
.nr 57 +\n(43
.nr 44 \n(57+((6*\n(38)/2)
.nr 58 +\n(44
.nr 45 \n(58+((6*\n(38)/2)
.nr 59 +\n(45
.nr TW \n(59
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 410 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(56u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(57u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(45u+|\n(58u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''P'\h'|\n(41u''X'\h'|\n(42u'LENGTH\h'|\n(43u'1\h'|\n(44u'FILE MODE\h'|\n(45u'LINKS
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5 to BP12)\h'|\n(45u'(BP13 to BP20)
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wUSER ID
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w(BP21 to BP28)
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wGROUP ID
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w(BP29 to BP36)
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((2*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 419 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(46u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'USER ID\h'|\n(41u'GROUP ID
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP21 to BP28)\h'|\n(41u'(BP29 to BP36)
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.sp
.H 3 "Description of the PN System Use Field
.sp
This field is mandatory if the file type recorded in the "PX"
File Mode field for the given directory record indicates a character or block
device.
This field, if present, should be ignored for all other file types.
No more than one "PN" System Use Field shall appear in (all)
the System Use Area(s) for a single directory record.
.sp
If the receiving system records device numbers as 32-bit numbers,
only the "Dev_t Low" field shall be used.
If the receiving system records device numbers as 64-bit numbers,
the "Dev_t High" and "Dev_t Low" fields shall be concatenated to make
one 64-bit number.
.sp
The format of the "PN" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "PN" type System Use Field.
The bytes in this field shall be (50)(4E) ("PN").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "PN" System Use Field.
The number in this field shall be 20 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "PN" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.bp
.LI "[4]"
"BP 5 to BP 12 - Dev_t High" shall contain as a 32-bit number
the high order 32 bits of the device number.
If the receiving system records device numbers as 32-bit numbers this field
shall be zero and ignored.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LI "[5]"
"BP 13 to BP 20 - Dev_t Low" shall contain as a 32-bit number
the low order 32-bits of the device number.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LE
.sp
.sp
.TB "PN System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 54 55 56 57 58 59
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w'P'
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP1)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w'N'
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP2)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w20
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP3)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 57 0
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w1
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w(BP4)
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.57
.rm 57
.nr 58 0
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \wDEV_T HIGH
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w(BP5 to BP12)
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.58
.rm 58
.nr 59 0
.nr 38 \wDEV_T LOW
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w(BP13 to BP20)
.if \n(59<\n(38 .nr 59 \n(38
.59
.rm 59
.nr 38 1n
.nr 53 0
.nr 40 \n(53+((2*\n(38)/2)
.nr 54 +\n(40
.nr 41 \n(54+((6*\n(38)/2)
.nr 55 +\n(41
.nr 42 \n(55+((6*\n(38)/2)
.nr 56 +\n(42
.nr 43 \n(56+((6*\n(38)/2)
.nr 57 +\n(43
.nr 44 \n(57+((6*\n(38)/2)
.nr 58 +\n(44
.nr 45 \n(58+((6*\n(38)/2)
.nr 59 +\n(45
.nr TW \n(59
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 479 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(56u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(57u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(45u+|\n(58u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''P'\h'|\n(41u''N'\h'|\n(42u'20\h'|\n(43u'1\h'|\n(44u'DEV_T HIGH\h'|\n(45u'DEV_T LOW
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5 to BP12)\h'|\n(45u'(BP13 to BP20)
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.sp
.H 3 "Description of the SL System Use Field"
.sp
The purpose of the "SL" System Use Field is to store the content
of a symbolic link.
This System Use Field is mandatory if the file
type recorded in the "PX" File Mode field for the given directory record
indicates a symbolic link.
For other file types, this System Use Field should be ignored.
If the receiving system does not support symbolic links the system should
invoke "Reader-Makes-Right".
.sp
If the file type recorded in the "PX" File Mode field for the given directory
record indicates a symbolic link, the directory record shall point to a file,
the contents of which are not specified by this document.
.sp
If more than one "SL" System Use Field is recorded in the System
Use Area(s) for a single directory record, the Component Area (see
section 4.1.3.1
below) of each should be concatenated together, in the order in which
they were recorded, until a CONTINUE flag with value zero is
encountered (see [4] below), to obtain the entire set of Component
Records for the symbolic link.
.sp
The method of recording is system independent.
Under reader makes right, the receiving system is responsible for supplying
appropriate values and/or notations for the component delimiter and
special cases provided for below.
.sp
.bp
The format of the "SL" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "SL" type System Use Field.
The bytes in this field shall be (53)(4C) ("SL").
.LI "[2]"
"BP 3 - Length (LEN_SL)" shall specify as an 8-bit number the length in
bytes of the "SL" System Use Field.
The number in this field shall be 5 plus the length of the Component
Area recorded in this "SL" field.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "SL" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 - Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 48 49 50
.nr 48 0
.nr 38 \wPosition
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w\_
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w0
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \wall others
.if \n(48<\n(38 .nr 48 \n(38
.48
.rm 48
.nr 49 0
.nr 38 \wName
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w\_
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wCONTINUE
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wRESERVED
.if \n(49<\n(38 .nr 49 \n(38
.49
.rm 49
.nr 50 0
.nr 38 \wInterpretation if set to 1
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w\_
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wThis Symbolic Link continues in next "SL"
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wvalue must be 0
.if \n(50<\n(38 .nr 50 \n(38
.50
.rm 50
.nr 38 1n
.nr 47 0
.nr 40 \n(47+((0*\n(38)/2)
.nr 48 +\n(40
.nr 41 \n(48+((6*\n(38)/2)
.nr 49 +\n(41
.nr 42 \n(49+((6*\n(38)/2)
.nr 50 +\n(42
.nr TW \n(50
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 543 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Position\h'|\n(41u'Name\h'|\n(42u'Interpretation if set to 1
.ta \n(48u \n(49u \n(50u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(48u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(49u'\s0\h'|\n(42u'\h'|\n(42u'\s\n(33\l'|\n(50u'\s0
.vs \n(36u
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0\h'|\n(41u'CONTINUE\h'|\n(42u'This Symbolic Link continues in next "SL"
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'all others\h'|\n(41u'RESERVED\h'|\n(42u'value must be 0
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.LI "[5]"
"BP 6 to LEN_SL - Component Records" shall contain Component Records
(described below).
.LE
.sp
.sp
.TB "SL System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 54 55 56 57 58 59
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w'S'
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP1)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w'L'
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP2)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \wLENGTH
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP3)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 57 0
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w1
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w(BP4)
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.57
.rm 57
.nr 58 0
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \wFLAGS
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w(BP5)
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.58
.rm 58
.nr 59 0
.nr 38 \w
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \wCOMPONENT RECORDS
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w(BP6 to LEN_SL)
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w
.if \n(59<\n(38 .nr 59 \n(38
.59
.rm 59
.nr 38 1n
.nr 53 0
.nr 40 \n(53+((2*\n(38)/2)
.nr 54 +\n(40
.nr 41 \n(54+((6*\n(38)/2)
.nr 55 +\n(41
.nr 42 \n(55+((6*\n(38)/2)
.nr 56 +\n(42
.nr 43 \n(56+((6*\n(38)/2)
.nr 57 +\n(43
.nr 44 \n(57+((6*\n(38)/2)
.nr 58 +\n(44
.nr 45 \n(58+((6*\n(38)/2)
.nr 59 +\n(45
.nr TW \n(59
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 559 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(56u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(57u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(45u+|\n(58u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''S'\h'|\n(41u''L'\h'|\n(42u'LENGTH\h'|\n(43u'1\h'|\n(44u'FLAGS\h'|\n(45u'COMPONENT RECORDS
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5)\h'|\n(45u'(BP6 to LEN_SL)
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.sp
.H 4 "Description of the SL System Use Field Component Record"
.sp
Within a "SL" System Use Field, each component of the pathname shall
be recorded as one or more component records.
A component does not contain the component separator (/ in POSIX).
Recording a single component of a symbolic
link may require multiple Component Records.
If the component is greater than 255 bytes or will not fit into the current
System Use Area or Continuation Area more than one Component Record will be
recorded for the component.
Multiple Component Records, specifying one or more separate components
of the symbolic link may be recorded in the Component Area of a
single "SL" field.
.sp
If a single Component Record is used to record a single component of a
symbolic link, the CONTINUE flag must be set to zero.
If multiple Component Records are used to record a single
component of a symbolic link, the CONTINUE flag must be set to one in
each Component Record except the last and zero in the last Component
Record recording the given component.
.sp
Component Records shall be recorded contiguously within each
Component Area, starting in the first byte of each Component Area.
The last Component Record in the Component Area of an "SL" field may
be continued in the Component Area of the next recorded "SL" field.
.sp
Each Component Record shall have the following format:
.sp
.VL 10 5
.LI "[A]"
"BP 1 - Component Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 48 49 50
.nr 48 0
.nr 38 \wPosition
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w\_
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w0
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w1
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w2
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w3
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w4
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w5
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \wall others
.if \n(48<\n(38 .nr 48 \n(38
.48
.rm 48
.nr 49 0
.nr 38 \wName
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w\_
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wCONTINUE
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wCURRENT
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wPARENT
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wROOT
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wVOLROOT
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wHOST
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wRESERVED
.if \n(49<\n(38 .nr 49 \n(38
.49
.rm 49
.nr 50 0
.nr 38 \wInterpretation if set to 1
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w\_
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wComponent recorded in this "SL" continues
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \win next "SL" Component Record
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wComponent refers to the current directory
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w(. in POSIX)
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wComponent refers to the parent of the
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wcurrent directory (.. in POSIX)
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wComponent refers to the root of the current
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wdirectory tree for this process (/ in POSIX)
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wComponent refers to the directory the
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wcurrent CD-ROM volume is mounted on
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wThe local host name should be inserted as
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wthe value of the current component
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wvalue must be 0
.if \n(50<\n(38 .nr 50 \n(38
.50
.rm 50
.nr 38 1n
.nr 47 0
.nr 40 \n(47+((0*\n(38)/2)
.nr 48 +\n(40
.nr 41 \n(48+((6*\n(38)/2)
.nr 49 +\n(41
.nr 42 \n(49+((6*\n(38)/2)
.nr 50 +\n(42
.nr TW \n(50
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 614 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Position\h'|\n(41u'Name\h'|\n(42u'Interpretation if set to 1
.ta \n(48u \n(49u \n(50u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(48u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(49u'\s0\h'|\n(42u'\h'|\n(42u'\s\n(33\l'|\n(50u'\s0
.vs \n(36u
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0\h'|\n(41u'CONTINUE\h'|\n(42u'Component recorded in this "SL" continues
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'in next "SL" Component Record
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'1\h'|\n(41u'CURRENT\h'|\n(42u'Component refers to the current directory
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'(. in POSIX)
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'2\h'|\n(41u'PARENT\h'|\n(42u'Component refers to the parent of the
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'current directory (.. in POSIX)
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'3\h'|\n(41u'ROOT\h'|\n(42u'Component refers to the root of the current
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'directory tree for this process (/ in POSIX)
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'4\h'|\n(41u'VOLROOT\h'|\n(42u'Component refers to the directory the
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'current CD-ROM volume is mounted on
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'5\h'|\n(41u'HOST\h'|\n(42u'The local host name should be inserted as
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'the value of the current component
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'all others\h'|\n(41u'RESERVED\h'|\n(42u'value must be 0
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-18
.sp
Bits 1 - 7 are mutually exclusive.
.sp
.LI "[B]"
"BP 2 - Component Length (LEN_CP)" shall specify as an 8-bit number the
length in bytes of the (portion of) the component recorded in the
current Component Record.
This length shall not include the Component Record Flags byte or Length byte.
If any of the
2\s-1\u1\d\s0 thru 2\s-1\u5\d\s0
bits are set, the value of this field shall be zero.
This field shall be recorded according to ISO 9660:1988 Format section 7.1.1.
.sp
.LI "[C]"
"BP 3 to 2 + LEN_CP - Component" shall contain (the portion of) the component
recorded in the current Component Record.
The content of this field shall be recorded according to section 3.2 above.
.LE
.sp
.sp
.TB "SL System Use Field - Component Record"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 48 49 50
.nr 48 0
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \wCOMP_FLAGS
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w(BP1)
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.48
.rm 48
.nr 49 0
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wCOMP_LEN
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w(BP2)
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.49
.rm 49
.nr 50 0
.nr 38 \w
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wCOMPONENT
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w(BP3 to 2+LEN_CP)
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w
.if \n(50<\n(38 .nr 50 \n(38
.50
.rm 50
.nr 38 1n
.nr 47 0
.nr 40 \n(47+((2*\n(38)/2)
.nr 48 +\n(40
.nr 41 \n(48+((6*\n(38)/2)
.nr 49 +\n(41
.nr 42 \n(49+((6*\n(38)/2)
.nr 50 +\n(42
.nr TW \n(50
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 643 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(48u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(49u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'COMP_FLAGS\h'|\n(41u'COMP_LEN\h'|\n(42u'COMPONENT
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3 to 2+LEN_CP)
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.bp
.sp
.H 3 "Description of the NM System Use Field"
.sp
The purpose of the "NM" System Use Field is to store the content
of an Alternate Name to support POSIX-style or other names.
This System Use Field is optional.
If no "NM" field(s) are recorded for a
specific directory record, the ISO 9660 file identifier shall be used.
.sp
If more than one "NM" System Use Field appears in (all) the
System Use Area(s) for a single directory record, the contents ([5]
below) of each should be concatenated together, in the order in which
they were recorded, until a CONTINUE flag with value zero is
encountered (see [4] below), to obtain the entire Alternate Name.
.sp
"NM" System Use Fields recorded for the ISO 9660 directory
records with names (00) and (01), used to designate the current and
parent directories, respectively, should be ignored.
Instead, the receiving system should convert these names to the appropriate
receiving system-dependent designations for the current and parent
directories.
.sp
No sorting of the directory records by Alternate Names is
specified by the RRIP, nor can one necessarily be imposed by
originating systems or assumed by receiving systems.
The ISO 9660 specifies a sorting order based upon the ISO 9660 file
identifier (see ISO 9660:1988, section 9.3).
.sp
The format of the "NM" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "NM" type System Use Field.
The bytes in this field shall be (4E)(4D) ("NM").
.LI "[2]"
"BP 3 - Length (LEN_NAM)" shall specify as an 8-bit number the length in
bytes of the "NM" System Use Field.
The number in this field shall be 5 plus the length (of the portion)
of the Alternate Name recorded in this "NM" field.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "NM" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.bp
.LI "[4]"
"BP 5 - Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 48 49 50
.nr 48 0
.nr 38 \wPosition
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w\_
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w0
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w1
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w2
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w3
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w4
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w5
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \wall others
.if \n(48<\n(38 .nr 48 \n(38
.48
.rm 48
.nr 49 0
.nr 38 \wName
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w\_
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wCONTINUE
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wCURRENT
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wPARENT
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wRESERVED
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wRESERVED
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wHOST
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wRESERVED
.if \n(49<\n(38 .nr 49 \n(38
.49
.rm 49
.nr 50 0
.nr 38 \wInterpretation if set to 1
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w\_
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wAlternate Name continues in next "NM"
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wfield
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wAlternate Name refers to the current
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wdirectory (. in POSIX)
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wAlternate Name refers to the parent of
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wthe current directory (.. in POSIX)
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wvalue must be 0
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wvalue must be 0
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wof the current CD-ROM volume
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wThe local host name should be inserted as
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wthe value of the Alternate Name
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wvalue must be 0
.if \n(50<\n(38 .nr 50 \n(38
.50
.rm 50
.nr 38 1n
.nr 47 0
.nr 40 \n(47+((0*\n(38)/2)
.nr 48 +\n(40
.nr 41 \n(48+((6*\n(38)/2)
.nr 49 +\n(41
.nr 42 \n(49+((6*\n(38)/2)
.nr 50 +\n(42
.nr TW \n(50
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 717 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Position\h'|\n(41u'Name\h'|\n(42u'Interpretation if set to 1
.ta \n(48u \n(49u \n(50u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(48u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(49u'\s0\h'|\n(42u'\h'|\n(42u'\s\n(33\l'|\n(50u'\s0
.vs \n(36u
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0\h'|\n(41u'CONTINUE\h'|\n(42u'Alternate Name continues in next "NM"
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'field
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'1\h'|\n(41u'CURRENT\h'|\n(42u'Alternate Name refers to the current
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'directory (. in POSIX)
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'2\h'|\n(41u'PARENT\h'|\n(42u'Alternate Name refers to the parent of
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'the current directory (.. in POSIX)
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'3\h'|\n(41u'RESERVED\h'|\n(42u'value must be 0
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'4\h'|\n(41u'RESERVED\h'|\n(42u'value must be 0
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'of the current CD-ROM volume
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'5\h'|\n(41u'HOST\h'|\n(42u'The local host name should be inserted as
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u'the value of the Alternate Name
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'all others\h'|\n(41u'RESERVED\h'|\n(42u'value must be 0
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-17
.sp
Bits 1 - 7 are mutually exclusive.
.sp
.LI "[5]"
"BP 6 to LEN_NAM - Alternate Name" shall contain (a portion of) the
content of the Alternate Name.
The content of this field shall be recorded according to section 3.2 above.
.LE
.sp
.sp
.TB "NM System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 54 55 56 57 58 59
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w'N'
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP1)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w'M'
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP2)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \wLENGTH
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP3)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 57 0
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w1
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w(BP4)
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.57
.rm 57
.nr 58 0
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \wFLAGS
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w(BP5)
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.58
.rm 58
.nr 59 0
.nr 38 \w
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \wALTERNATE NAME
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w(BP6 to LEN_NAM)
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w
.if \n(59<\n(38 .nr 59 \n(38
.59
.rm 59
.nr 38 1n
.nr 53 0
.nr 40 \n(53+((2*\n(38)/2)
.nr 54 +\n(40
.nr 41 \n(54+((6*\n(38)/2)
.nr 55 +\n(41
.nr 42 \n(55+((6*\n(38)/2)
.nr 56 +\n(42
.nr 43 \n(56+((6*\n(38)/2)
.nr 57 +\n(43
.nr 44 \n(57+((6*\n(38)/2)
.nr 58 +\n(44
.nr 45 \n(58+((6*\n(38)/2)
.nr 59 +\n(45
.nr TW \n(59
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 736 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(56u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(57u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(45u+|\n(58u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''N'\h'|\n(41u''M'\h'|\n(42u'LENGTH\h'|\n(43u'1\h'|\n(44u'FLAGS\h'|\n(45u'ALTERNATE NAME
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5)\h'|\n(45u'(BP6 to LEN_NAM)
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.sp
.H 3 "System Use Fields for Handling Deep Directory Trees"
.sp
The ISO 9660:1988 mandates directory depths of no more than eight levels.
Deeper directories must be reorganized to be recorded under the ISO 9660.
The RRIP includes definitions of three System Use
Fields to support logical reconstruction of deep directory trees while
retaining complete ISO 9660 compliance.
.sp
For each specific directory, either all three of the following
fields must be appropriately recorded, or none shall be recorded.
.sp
Table 9 and Table 10 at the end of this section have graphical examples
of Deep Directory Trees.
.bp
.H 4 "Description of the CL System Use Field"
.sp
The purpose of the "CL" System Use Field is to record the new
location of a directory which has been relocated.
The field contains the Logical Block number of the Logical Sector in which
the first directory record of the moved Directory is stored.
.sp
The "CL" System Use Field is optional.
If recorded, a "CL" System Use Field shall be recorded in the System Use
Area of a ISO 9660 directory record which describes a file which has the
same name as, and occupies the original position in the ISO 9660 directory tree
of, the moved Directory.
No more than one "CL" System Use Field shall appear in (all) the System Use
Area(s) for a single directory record.
.sp
Except for the ISO 9660 name, the Alternate Name (recorded in an
"NM" System Use Field), and the new location of the Directory, all
other information stored in the directory for this file should
be ignored.
The contents of this file are not specified by this document.
All attributes of the moved Directory shall be recorded in the first directory
record ("dot" entry) of the moved Directory in its new location.
.sp
The format of the "CL" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "CL" type System Use Field.
The bytes in this field shall be (43)(4C) ("CL").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "CL" System Use Field.
The number in this field shall be 12 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "CL" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 to BP 12 - Location of Child Directory" shall specify as a
32-bit number the Logical Block Number of the first Logical Block
allocated to the moved directory.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LE
.sp
.sp
.TB "CL System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 52 53 54 55 56
.nr 52 0
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w'C'
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w(BP1)
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.52
.rm 52
.nr 53 0
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w'L'
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w(BP2)
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.53
.rm 53
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w12
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP3)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w1
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP4)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \wLOC of CHILD DIRECTORY
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP5 to BP12)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 38 1n
.nr 51 0
.nr 40 \n(51+((2*\n(38)/2)
.nr 52 +\n(40
.nr 41 \n(52+((6*\n(38)/2)
.nr 53 +\n(41
.nr 42 \n(53+((6*\n(38)/2)
.nr 54 +\n(42
.nr 43 \n(54+((6*\n(38)/2)
.nr 55 +\n(43
.nr 44 \n(55+((6*\n(38)/2)
.nr 56 +\n(44
.nr TW \n(56
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 812 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(52u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(53u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u'
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''C'\h'|\n(41u''L'\h'|\n(42u'12\h'|\n(43u'1\h'|\n(44u'LOC of CHILD DIRECTORY
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5 to BP12)
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.bp
.sp
.H 4 "Description of the PL System Use Field"
.sp
The purpose of the "PL" System Use Field is to record the
location of the original parent Directory of a Directory which has
been relocated.
The field contains the Logical Block number of the
Logical Sector in which the first directory record of the original
parent Directory of said moved Directory is stored.
.sp
For each moved Directory which is recorded using a "CL" System
Use Field, a corresponding "PL" System Use Field is required.
The "PL" System Use Field shall be recorded in the System Use Area of the
second directory record ("dot-dot" entry) of the moved Directory.
No more than one "PL" System Use Field shall appear in (all) the System
Use Area(s) for a single directory record.
.sp
The format of the "PL" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "PL" type System Use Field.
The bytes in this field shall be (50)(4C) ("PL").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "PL" System Use Field.
The number in this field shall be 12 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "PL" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 to BP 12 - Location of Parent Directory" shall specify as a
32-bit number the Logical Block Number of the first Logical Block
allocated to the original parent directory of the moved directory.
This field shall be recorded according to ISO 9660:1988 Format section 7.3.3.
.LE
.sp
.sp
.TB "PL System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 52 53 54 55 56
.nr 52 0
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w'P'
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w(BP1)
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.52
.rm 52
.nr 53 0
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w'L'
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w(BP2)
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.53
.rm 53
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w12
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP3)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w1
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP4)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \wLOC of PARENT DIRECTORY
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP5 to BP12)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 38 1n
.nr 51 0
.nr 40 \n(51+((2*\n(38)/2)
.nr 52 +\n(40
.nr 41 \n(52+((6*\n(38)/2)
.nr 53 +\n(41
.nr 42 \n(53+((6*\n(38)/2)
.nr 54 +\n(42
.nr 43 \n(54+((6*\n(38)/2)
.nr 55 +\n(43
.nr 44 \n(55+((6*\n(38)/2)
.nr 56 +\n(44
.nr TW \n(56
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 868 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(52u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(53u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u'
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''P'\h'|\n(41u''L'\h'|\n(42u'12\h'|\n(43u'1\h'|\n(44u'LOC of PARENT DIRECTORY
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5 to BP12)
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.bp
.sp
.H 4 "Description of the RE System Use Field"
.sp
The purpose of the "RE" System Use Field is to indicate to a
receiving system which can understand the System Use Fields "CL" and
"PL" that the directory record in which this "RE" System Use Field is
recorded has been relocated from another position in the original
directory tree.
.sp
An "RE" System Use Field shall not be recorded unless a corresponding
"CL" System Use Field is recorded.
If recorded, a "RE" System Use Field shall be recorded in
the System Use Area of the directory record which describes the moved
Directory in the new parent directory of the moved Directory.
.sp
The format of the "RE" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "RE" type System Use Field.
The bytes in this field shall be (52)(45) ("RE").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "RE" System Use Field.
The number in this field shall be 4 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "RE" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LE
.sp
.sp
.TB "RE System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 50 51 52 53
.nr 50 0
.nr 38 \w
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w'R'
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w(BP1)
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w
.if \n(50<\n(38 .nr 50 \n(38
.50
.rm 50
.nr 51 0
.nr 38 \w
.if \n(51<\n(38 .nr 51 \n(38
.nr 38 \w'E'
.if \n(51<\n(38 .nr 51 \n(38
.nr 38 \w(BP2)
.if \n(51<\n(38 .nr 51 \n(38
.nr 38 \w
.if \n(51<\n(38 .nr 51 \n(38
.51
.rm 51
.nr 52 0
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w4
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w(BP3)
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.52
.rm 52
.nr 53 0
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w1
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w(BP4)
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.53
.rm 53
.nr 38 1n
.nr 49 0
.nr 40 \n(49+((2*\n(38)/2)
.nr 50 +\n(40
.nr 41 \n(50+((6*\n(38)/2)
.nr 51 +\n(41
.nr 42 \n(51+((6*\n(38)/2)
.nr 52 +\n(42
.nr 43 \n(52+((6*\n(38)/2)
.nr 53 +\n(43
.nr TW \n(53
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 917 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(50u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(51u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(52u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(50u \n(51u \n(52u \n(53u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u'
.ta \n(50u \n(51u \n(52u \n(53u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''R'\h'|\n(41u''E'\h'|\n(42u'4\h'|\n(43u'1
.ta \n(50u \n(51u \n(52u \n(53u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)
.ta \n(50u \n(51u \n(52u \n(53u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.bp
.sp
.TB "Deep Directory Relocation"
.sp
.sp
... -3.5 -7.25 1.75 0.25
... 0.000i 7.500i 5.250i 0.000i
.nr 00 \n(.u
.nf
.PS 7.500i 5.250i
.br
.ft 3
\h'3.875i'\v'0.250i'\h'-0.0m'\v'0.2m'\h'-\w'1'u/2u'1\h'-\w'1'u/2u'
.sp -1
\h'3.500i'\v'0.500i'\D'l0.000i -0.500i'
.sp -1
\h'3.500i'\D'l0.750i 0.000i'
.sp -1
\h'4.250i'\D'l0.000i 0.500i'
.sp -1
\h'4.250i'\v'0.500i'\D'l-0.750i 0.000i'
.sp -1
\h'4.500i'\v'0.250i'\h'-0.0m'\v'0.2m'\h'-\w'(root)'u/2u'(root)\h'-\w'(root)'u/2u'
.sp -1
\h'1.375i'\v'1.250i'\h'-0.0m'\v'0.2m'\h'-\w'2a'u/2u'2a\h'-\w'2a'u/2u'
.sp -1
\h'1.000i'\v'1.500i'\D'l0.000i -0.500i'
.sp -1
\h'1.000i'\v'1.000i'\D'l0.750i 0.000i'
.sp -1
\h'1.750i'\v'1.000i'\D'l0.000i 0.500i'
.sp -1
\h'1.750i'\v'1.500i'\D'l-0.750i 0.000i'
.sp -1
\h'2.375i'\v'1.250i'\h'-0.0m'\v'0.2m'\h'-\w'2b'u/2u'2b\h'-\w'2b'u/2u'
.sp -1
\h'2.000i'\v'1.500i'\D'l0.000i -0.500i'
.sp -1
\h'2.000i'\v'1.000i'\D'l0.750i 0.000i'
.sp -1
\h'2.750i'\v'1.000i'\D'l0.000i 0.500i'
.sp -1
\h'2.750i'\v'1.500i'\D'l-0.750i 0.000i'
.sp -1
\h'3.375i'\v'1.250i'\h'-0.0m'\v'0.2m'\h'-\w'2c'u/2u'2c\h'-\w'2c'u/2u'
.sp -1
\h'3.000i'\v'1.500i'\D'l0.000i -0.500i'
.sp -1
\h'3.000i'\v'1.000i'\D'l0.750i 0.000i'
.sp -1
\h'3.750i'\v'1.000i'\D'l0.000i 0.500i'
.sp -1
\h'3.750i'\v'1.500i'\D'l-0.750i 0.000i'
.sp -1
\h'3.875i'\v'0.500i'\D'l-2.500i 0.500i'
.sp -1
\h'3.875i'\v'0.500i'\D'l-1.500i 0.500i'
.sp -1
\h'3.875i'\v'0.500i'\D'l-0.500i 0.500i'
.sp -1
\h'2.875i'\v'2.250i'\h'-0.0m'\v'0.2m'\h'-\w'3'u/2u'3\h'-\w'3'u/2u'
.sp -1
\h'2.500i'\v'2.500i'\D'l0.000i -0.500i'
.sp -1
\h'2.500i'\v'2.000i'\D'l0.750i 0.000i'
.sp -1
\h'3.250i'\v'2.000i'\D'l0.000i 0.500i'
.sp -1
\h'3.250i'\v'2.500i'\D'l-0.750i 0.000i'
.sp -1
\h'3.375i'\v'1.500i'\D'l-0.500i 0.500i'
.sp -1
\h'2.375i'\v'3.250i'\h'-0.0m'\v'0.2m'\h'-\w'4'u/2u'4\h'-\w'4'u/2u'
.sp -1
\h'2.000i'\v'3.500i'\D'l0.000i -0.500i'
.sp -1
\h'2.000i'\v'3.000i'\D'l0.750i 0.000i'
.sp -1
\h'2.750i'\v'3.000i'\D'l0.000i 0.500i'
.sp -1
\h'2.750i'\v'3.500i'\D'l-0.750i 0.000i'
.sp -1
\h'4.375i'\v'3.250i'\h'-0.0m'\v'0.2m'\h'-\w'8'u/2u'8\h'-\w'8'u/2u'
.sp -1
\h'4.000i'\v'3.500i'\D'l0.000i -0.500i'
.sp -1
\h'4.000i'\v'3.000i'\D'l0.750i 0.000i'
.sp -1
\h'4.750i'\v'3.000i'\D'l0.000i 0.500i'
.sp -1
\h'4.750i'\v'3.500i'\D'l-0.750i 0.000i'
.sp -1
\h'5.000i'\v'3.250i'\h'-0.0m'\v'0.2m'\h'-\w'"RE"'u/2u'"RE"\h'-\w'"RE"'u/2u'
.sp -1
\h'2.875i'\v'2.500i'\D'l-0.500i 0.500i'
.sp -1
\h'2.875i'\v'2.500i'\D'l1.500i 0.500i'
.sp -1
\h'4.375i'\v'3.500i'\D'l-0.500i 0.400i'
.sp -1
\h'4.375i'\v'3.500i'\D'l0.500i 0.400i'
.sp -1
\h'1.875i'\v'4.250i'\h'-0.0m'\v'0.2m'\h'-\w'5'u/2u'5\h'-\w'5'u/2u'
.sp -1
\h'1.500i'\v'4.500i'\D'l0.000i -0.500i'
.sp -1
\h'1.500i'\v'4.000i'\D'l0.750i 0.000i'
.sp -1
\h'2.250i'\v'4.000i'\D'l0.000i 0.500i'
.sp -1
\h'2.250i'\v'4.500i'\D'l-0.750i 0.000i'
.sp -1
\h'2.375i'\v'3.500i'\D'l-0.500i 0.500i'
.sp -1
\h'1.375i'\v'5.250i'\h'-0.0m'\v'0.2m'\h'-\w'6'u/2u'6\h'-\w'6'u/2u'
.sp -1
\h'1.000i'\v'5.500i'\D'l0.000i -0.500i'
.sp -1
\h'1.000i'\v'5.000i'\D'l0.750i 0.000i'
.sp -1
\h'1.750i'\v'5.000i'\D'l0.000i 0.500i'
.sp -1
\h'1.750i'\v'5.500i'\D'l-0.750i 0.000i'
.sp -1
\h'1.875i'\v'4.500i'\D'l-0.500i 0.500i'
.sp -1
\h'0.875i'\v'6.250i'\h'-0.0m'\v'0.2m'\h'-\w'7'u/2u'7\h'-\w'7'u/2u'
.sp -1
\h'0.500i'\v'6.500i'\D'l0.000i -0.500i'
.sp -1
\h'0.500i'\v'6.000i'\D'l0.750i 0.000i'
.sp -1
\h'1.250i'\v'6.000i'\D'l0.000i 0.500i'
.sp -1
\h'1.250i'\v'6.500i'\D'l-0.750i 0.000i'
.sp -1
\h'1.375i'\v'5.500i'\D'l-0.500i 0.500i'
.sp -1
\h'0.375i'\v'7.250i'\h'-0.0m'\v'0.2m'\h'-\w'file'u/2u'file\h'-\w'file'u/2u'
.sp -1
\v'7.250i'\D'e0.750i 0.500i'
.sp -1
\h'0.875i'\v'6.500i'\D'l-0.500i 0.500i'
.sp -1
\h'0.775i'\v'7.250i'\D'a-0.162i -3.997i 3.962i 0.547i'
.sp -1
\h'4.586i'\v'3.902i'\D'l-0.011i -0.102i'
.sp -1
\h'4.537i'\v'3.896i'\D'l0.038i -0.096i'
.sp -1
\h'1.375i'\v'6.223i'\D'l-0.100i 0.027i'
.sp -1
\h'1.375i'\v'6.273i'\D'l-0.100i -0.023i'
.sp -1
\h'1.275i'\v'6.250i'\D'a-0.049i -3.000i 2.949i 0.550i'
.sp -1
\h'3.225i'\v'5.250i'\h'-0.0m'\v'0.2m'\h'-\w'"PL"'u/2u'"PL"\h'-\w'"PL"'u/2u'
.sp -1
\h'4.425i'\v'5.250i'\h'-0.0m'\v'0.2m'\h'-\w'"CL"'u/2u'"CL"\h'-\w'"CL"'u/2u'
.sp -1
.ft 1
.sp 1+7.500i
.PE
.if \n(00 .fi
.bp
.TB "Detailed Deep Directory Relocation"
.sp
.sp
... 0 -5.2914 5.25 0.1
... 0.000i 5.391i 5.250i 0.000i
.nr 00 \n(.u
.nf
.PS 5.391i 5.250i
.br
.ft 3
\h'1.000i'\v'0.100i'\h'-0.0m'\v'0.2m' directory foo/
.sp -1
\h'1.000i'\v'0.400i'\D'l0.000i -0.200i'
.sp -1
\h'1.000i'\v'0.200i'\D'l1.500i 0.000i'
.sp -1
\h'2.500i'\v'0.200i'\D'l0.000i 0.200i'
.sp -1
\h'2.500i'\v'0.400i'\D'l-1.500i 0.000i'
.sp -1
\h'1.000i'\v'0.300i'\h'-0.0m'\v'0.2m' "dot"
.sp -1
\h'2.500i'\v'0.400i'\D'l0.000i -0.200i'
.sp -1
\h'2.500i'\v'0.200i'\D'l0.750i 0.000i'
.sp -1
\h'3.250i'\v'0.200i'\D'l0.000i 0.200i'
.sp -1
\h'3.250i'\v'0.400i'\D'l-0.750i 0.000i'
.sp -1
\h'2.500i'\v'0.300i'\h'-0.0m'\v'0.2m' rrip...
.sp -1
\h'1.000i'\v'0.600i'\D'l0.000i -0.200i'
.sp -1
\h'1.000i'\v'0.400i'\D'l1.500i 0.000i'
.sp -1
\h'2.500i'\v'0.400i'\D'l0.000i 0.200i'
.sp -1
\h'2.500i'\v'0.600i'\D'l-1.500i 0.000i'
.sp -1
\h'1.000i'\v'0.500i'\h'-0.0m'\v'0.2m' "dotdot"
.sp -1
\h'2.500i'\v'0.600i'\D'l0.000i -0.200i'
.sp -1
\h'2.500i'\v'0.400i'\D'l0.750i 0.000i'
.sp -1
\h'3.250i'\v'0.400i'\D'l0.000i 0.200i'
.sp -1
\h'3.250i'\v'0.600i'\D'l-0.750i 0.000i'
.sp -1
\h'2.500i'\v'0.500i'\h'-0.0m'\v'0.2m' rrip...
.sp -1
\h'1.000i'\v'0.800i'\D'l0.000i -0.200i'
.sp -1
\h'1.000i'\v'0.600i'\D'l1.500i 0.000i'
.sp -1
\h'2.500i'\v'0.600i'\D'l0.000i 0.200i'
.sp -1
\h'2.500i'\v'0.800i'\D'l-1.500i 0.000i'
.sp -1
\h'1.000i'\v'0.700i'\h'-0.0m'\v'0.2m' bar
.sp -1
\h'2.500i'\v'0.800i'\D'l0.000i -0.200i'
.sp -1
\h'2.500i'\v'0.600i'\D'l0.750i 0.000i'
.sp -1
\h'3.250i'\v'0.600i'\D'l0.000i 0.200i'
.sp -1
\h'3.250i'\v'0.800i'\D'l-0.750i 0.000i'
.sp -1
\h'2.500i'\v'0.700i'\h'-0.0m'\v'0.2m' rrip...
.sp -1
\h'1.000i'\v'1.000i'\D'l0.000i -0.200i'
.sp -1
\h'1.000i'\v'0.800i'\D'l1.500i 0.000i'
.sp -1
\h'2.500i'\v'0.800i'\D'l0.000i 0.200i'
.sp -1
\h'2.500i'\v'1.000i'\D'l-1.500i 0.000i'
.sp -1
\h'1.000i'\v'0.900i'\h'-0.0m'\v'0.2m' hidden_baz
.sp -1
\h'2.500i'\v'1.000i'\D'l0.000i -0.200i'
.sp -1
\h'2.500i'\v'0.800i'\D'l0.750i 0.000i'
.sp -1
\h'3.250i'\v'0.800i'\D'l0.000i 0.200i'
.sp -1
\h'3.250i'\v'1.000i'\D'l-0.750i 0.000i'
.sp -1
\h'2.500i'\v'0.900i'\h'-0.0m'\v'0.2m' RE
.sp -1
\h'1.000i'\v'1.200i'\D'l0.000i -0.200i'
.sp -1
\h'1.000i'\v'1.000i'\D'l1.500i 0.000i'
.sp -1
\h'2.500i'\v'1.000i'\D'l0.000i 0.200i'
.sp -1
\h'2.500i'\v'1.200i'\D'l-1.500i 0.000i'
.sp -1
\h'1.000i'\v'1.100i'\h'-0.0m'\v'0.2m' lower
.sp -1
\h'2.500i'\v'1.200i'\D'l0.000i -0.200i'
.sp -1
\h'2.500i'\v'1.000i'\D'l0.750i 0.000i'
.sp -1
\h'3.250i'\v'1.000i'\D'l0.000i 0.200i'
.sp -1
\h'3.250i'\v'1.200i'\D'l-0.750i 0.000i'
.sp -1
\h'2.500i'\v'1.100i'\h'-0.0m'\v'0.2m' rrip...
.sp -1
\h'4.500i'\v'1.500i'\h'-0.0m'\v'0.2m'
.sp -1
\h'4.765i'\v'1.741i'\h'-0.0m'\v'0.2m'\h'-\w'File'u/2u'File\h'-\w'File'u/2u'
.sp -1
\h'4.390i'\v'1.741i'\D'e0.750i 0.400i'
.sp -1
\h'2.140i'\v'2.491i'\h'-0.0m'\v'0.2m' directory lower/
.sp -1
\h'2.140i'\v'2.991i'\D'l0.000i -0.400i'
.sp -1
\h'2.140i'\v'2.591i'\D'l2.550i 0.000i'
.sp -1
\h'4.690i'\v'2.591i'\D'l0.000i 0.400i'
.sp -1
\h'4.690i'\v'2.991i'\D'l-2.550i 0.000i'
.sp -1
\h'2.140i'\v'2.791i'\h'-0.0m'\v'0.2m'
.sp -1
\h'2.140i'\v'3.191i'\D'l0.000i -0.200i'
.sp -1
\h'2.140i'\v'2.991i'\D'l0.850i 0.000i'
.sp -1
\h'2.990i'\v'2.991i'\D'l0.000i 0.200i'
.sp -1
\h'2.990i'\v'3.191i'\D'l-0.850i 0.000i'
.sp -1
\h'2.140i'\v'3.091i'\h'-0.0m'\v'0.2m' empty_baz
.sp -1
\h'2.990i'\v'3.191i'\D'l0.000i -0.200i'
.sp -1
\h'2.990i'\v'2.991i'\D'l0.850i 0.000i'
.sp -1
\h'3.840i'\v'2.991i'\D'l0.000i 0.200i'
.sp -1
\h'3.840i'\v'3.191i'\D'l-0.850i 0.000i'
.sp -1
\h'2.990i'\v'3.091i'\h'-0.0m'\v'0.2m' NM "baz"
.sp -1
\h'3.840i'\v'3.191i'\D'l0.000i -0.200i'
.sp -1
\h'3.840i'\v'2.991i'\D'l0.850i 0.000i'
.sp -1
\h'4.690i'\v'2.991i'\D'l0.000i 0.200i'
.sp -1
\h'4.690i'\v'3.191i'\D'l-0.850i 0.000i'
.sp -1
\h'3.840i'\v'3.091i'\h'-0.0m'\v'0.2m' CL
.sp -1
\h'3.215i'\v'3.841i'\h'-0.0m'\v'0.2m'\h'-\w' File'u/2u' File\h'-\w' File'u/2u'
.sp -1
\h'2.840i'\v'3.841i'\D'e0.750i 0.400i'
.sp -1
\h'1.840i'\v'4.691i'\h'-0.0m'\v'0.2m' directory baz/
.sp -1
\h'1.840i'\v'4.991i'\D'l0.000i -0.200i'
.sp -1
\h'1.840i'\v'4.791i'\D'l1.000i 0.000i'
.sp -1
\h'2.840i'\v'4.791i'\D'l0.000i 0.200i'
.sp -1
\h'2.840i'\v'4.991i'\D'l-1.000i 0.000i'
.sp -1
\h'1.840i'\v'4.891i'\h'-0.0m'\v'0.2m' "dot"
.sp -1
\h'2.840i'\v'4.991i'\D'l0.000i -0.200i'
.sp -1
\h'2.840i'\v'4.791i'\D'l1.000i 0.000i'
.sp -1
\h'3.840i'\v'4.791i'\D'l0.000i 0.200i'
.sp -1
\h'3.840i'\v'4.991i'\D'l-1.000i 0.000i'
.sp -1
\h'2.840i'\v'4.891i'\h'-0.0m'\v'0.2m' rrip...
.sp -1
\h'1.840i'\v'5.191i'\D'l0.000i -0.200i'
.sp -1
\h'1.840i'\v'4.991i'\D'l1.000i 0.000i'
.sp -1
\h'2.840i'\v'4.991i'\D'l0.000i 0.200i'
.sp -1
\h'2.840i'\v'5.191i'\D'l-1.000i 0.000i'
.sp -1
\h'1.840i'\v'5.091i'\h'-0.0m'\v'0.2m' "dotdot"
.sp -1
\h'2.840i'\v'5.191i'\D'l0.000i -0.200i'
.sp -1
\h'2.840i'\v'4.991i'\D'l1.000i 0.000i'
.sp -1
\h'3.840i'\v'4.991i'\D'l0.000i 0.200i'
.sp -1
\h'3.840i'\v'5.191i'\D'l-1.000i 0.000i'
.sp -1
\h'2.840i'\v'5.091i'\h'-0.0m'\v'0.2m' PL
.sp -1
\h'1.840i'\v'5.391i'\D'l0.000i -0.200i'
.sp -1
\h'1.840i'\v'5.191i'\D'l1.000i 0.000i'
.sp -1
\h'2.840i'\v'5.191i'\D'l0.000i 0.200i'
.sp -1
\h'2.840i'\v'5.391i'\D'l-1.000i 0.000i'
.sp -1
\h'1.840i'\v'5.291i'\h'-0.0m'\v'0.2m'
.sp -1
\h'2.840i'\v'5.391i'\D'l0.000i -0.200i'
.sp -1
\h'2.840i'\v'5.191i'\D'l1.000i 0.000i'
.sp -1
\h'3.840i'\v'5.191i'\D'l0.000i 0.200i'
.sp -1
\h'3.840i'\v'5.391i'\D'l-1.000i 0.000i'
.sp -1
\h'2.840i'\v'5.291i'\h'-0.0m'\v'0.2m'
.sp -1
.\" BAR->FILE
\h'4.687i'\v'1.474i'\D'l0.078i 0.067i'
.sp -1
\h'4.728i'\v'1.445i'\D'l0.037i 0.096i'
.sp -1
\h'4.765i'\v'1.541i'\D'a-1.633i 1.155i 0.118i -1.997i'
.sp -1
.\" HIDDEN_BAZ->DIR_BAZ
\h'1.000i'\v'0.900i'\D'a3.787i 1.287i -2.947i 2.704i'
.sp -1
\h'1.754i'\v'4.835i'\D'l0.086i 0.057i'
.sp -1
\h'1.791i'\v'4.801i'\D'l0.049i 0.091i'
.sp -1
.\" LOWER->DIR_LOWER
\h'3.348i'\v'2.513i'\D'l0.067i 0.079i'
.sp -1
\h'3.393i'\v'2.491i'\D'l0.022i 0.101i'
.sp -1
\h'3.415i'\v'2.591i'\D'a-2.690i 1.328i 1.025i -2.820i'
.sp -1
.\" EMPTY_BAZX->EMPTY_FILE
\h'2.565i'\v'3.191i'\D'a2.571i -1.546i -2.186i 2.054i'
.sp -1
\h'2.863i'\v'3.644i'\D'l0.087i 0.056i'
.sp -1
\h'2.900i'\v'3.610i'\D'l0.050i 0.090i'
.sp -1
.\" CL->DIR_BAZ
\h'3.411i'\v'4.717i'\D'l-0.071i 0.075i'
.sp -1
\h'3.438i'\v'4.759i'\D'l-0.098i 0.033i'
.sp -1
\h'3.340i'\v'4.791i'\D'a-1.075i -1.687i 2.000i -0.013i'
.sp -1
.\" PL->DIR_LOWER
\h'3.340i'\v'5.091i'\D'a0.027i -1.600i 1.323i -0.900i'
.sp -1
\h'4.767i'\v'2.660i'\D'l-0.077i -0.069i'
.sp -1
\h'4.726i'\v'2.688i'\D'l-0.036i -0.097i'
.sp -1
.ft 1
.sp 1+5.391i
.PE
.if \n(00 .fi
.bp
.sp
.sp
.H 3 "Description of the TF System Use Field"
.sp
The purpose of the "TF" System Use Field is to allow the
recording of a complete set of time stamps related to a file.
This System Use Field shall be optional.
If this field does not exist, the
POSIX st_atime, st_ctime and st_mtime should have the same value as
Recording Date and Time Field of the ISO 9660:1988 directory record.
If both the "TF" System Use Field and the XAR are present, the time
attributes stored in these two areas must be consistent.
If only the XAR is present, the st_atime should have the same value as the
Recording Date and Time Field of the ISO 9660 directory record.
.sp
Multiple "TF" fields may be recorded, using any combination of time
stamps and time formats, but each individual time stamp may be recorded
only once per directory record.
.sp
The format of the "TF" System Use Field is as follows:
.sp
.VL 12 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "TF" type System Use Field.
The bytes in this field shall be (54)(46) ("TF").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "TF" System Use Field.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "TF" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 - Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 48 49 50
.nr 48 0
.nr 38 \wPosition
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w\_
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w0
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w1
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w2
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w3
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w4
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w5
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w6
.if \n(48<\n(38 .nr 48 \n(38
.nr 38 \w7
.if \n(48<\n(38 .nr 48 \n(38
.48
.rm 48
.nr 49 0
.nr 38 \wName
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \w\_
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wCREATION
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wMODIFY
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wACCESS
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wATTRIBUTES
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wBACKUP
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wEXPIRATION
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wEFFECTIVE
.if \n(49<\n(38 .nr 49 \n(38
.nr 38 \wLONG_FORM
.if \n(49<\n(38 .nr 49 \n(38
.49
.rm 49
.nr 50 0
.nr 38 \wInterpretation if set to 1
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \w\_
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wCreation time recorded
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wModification time recorded
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wLast Access time recorded
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wLast Attribute Change time recorded
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wLast Backup time recorded
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wExpiration time recorded
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wEffective time recorded
.if \n(50<\n(38 .nr 50 \n(38
.nr 38 \wISO 9660 17-byte time format used
.if \n(50<\n(38 .nr 50 \n(38
.50
.rm 50
.nr 38 1n
.nr 47 0
.nr 40 \n(47+((0*\n(38)/2)
.nr 48 +\n(40
.nr 41 \n(48+((6*\n(38)/2)
.nr 49 +\n(41
.nr 42 \n(49+((6*\n(38)/2)
.nr 50 +\n(42
.nr TW \n(50
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1412 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Position\h'|\n(41u'Name\h'|\n(42u'Interpretation if set to 1
.ta \n(48u \n(49u \n(50u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(48u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(49u'\s0\h'|\n(42u'\h'|\n(42u'\s\n(33\l'|\n(50u'\s0
.vs \n(36u
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0\h'|\n(41u'CREATION\h'|\n(42u'Creation time recorded
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'1\h'|\n(41u'MODIFY\h'|\n(42u'Modification time recorded
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'2\h'|\n(41u'ACCESS\h'|\n(42u'Last Access time recorded
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'3\h'|\n(41u'ATTRIBUTES\h'|\n(42u'Last Attribute Change time recorded
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'4\h'|\n(41u'BACKUP\h'|\n(42u'Last Backup time recorded
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'5\h'|\n(41u'EXPIRATION\h'|\n(42u'Expiration time recorded
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'6\h'|\n(41u'EFFECTIVE\h'|\n(42u'Effective time recorded
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'7\h'|\n(41u'LONG_FORM\h'|\n(42u'ISO 9660 17-byte time format used
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-13
.sp
If the LONG_FORM bit is set to one, all time stamps in this "TF"
System Use Field shall be recorded using the format specified in
Section 8.4.26.1 of ISO 9660:1988.
If the LONG_FORM bit is set to zero, all time stamps in this "TF"
System Use Field shall be recorded
using the format specified in Section 9.1.5 of ISO 9660:1988.
.LI "[4+N]"
"BP 6+(X*(N-1)) to 5+(X*N) Time Stamp" shall contain the Nth time
stamp indicated in [4] as being recorded, starting with the 0th
bit and working sequentially through the list of recordable time stamps.
The LONG_FORM bit does not indicate the presence or
absence of any time stamp.
The value of X in the expression above
shall be 17 if the LONG_FORM bit is set to 1, and 7 otherwise.
.LE
.bp
.sp
The recorded time for each of the time stamps recorded in this
field shall be local time.
if recorded, CREATION, Creation Time, has the same meaning as in
ISO 9660:1988 Format section 9.5.4.
.sp
If recorded, MODIFY, File Modification Date and Time, has the
same meaning as in ISO 9660:1988 Format section 9.5.5.
This field shall be used by the st_mtime for POSIX conformance.
.sp
If recorded, ACCESS, File Last Access Date and Time, shall
specify the date and time of the day at which the information in the
file was last accessed.
This field shall be used by the st_atime for POSIX conformance.
.sp
If recorded, ATTRIBUTES, Last Attribute Change Time,
shall be used by the st_ctime field for POSIX conformance.
.sp
If recorded, BACKUP, Last Backup Time, shall provide a time stamp
for the most recent backup of this file.
The utilization of this information is not restricted by this specification.
.sp
If recorded, EXPIRE, File Expiration Date and Time, has the same
meaning as in ISO 9660:1988 Format section 9.5.6.
.sp
If recorded, EFFECT File Effective Date and Time" has the same
meaning as in ISO 9660:1988 Format section 9.5.7.
.sp
.sp
.TB "TF System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 54 55 56 57 58 59
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w'T'
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP1)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w'F'
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP2)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \wLENGTH
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP3)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 57 0
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w1
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w(BP4)
.if \n(57<\n(38 .nr 57 \n(38
.nr 38 \w
.if \n(57<\n(38 .nr 57 \n(38
.57
.rm 57
.nr 58 0
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \wFLAGS
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w(BP5)
.if \n(58<\n(38 .nr 58 \n(38
.nr 38 \w
.if \n(58<\n(38 .nr 58 \n(38
.58
.rm 58
.nr 59 0
.nr 38 \w
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \wTIME STAMPS
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w(BP6 to LENGTH)
.if \n(59<\n(38 .nr 59 \n(38
.nr 38 \w
.if \n(59<\n(38 .nr 59 \n(38
.59
.rm 59
.nr 38 1n
.nr 53 0
.nr 40 \n(53+((2*\n(38)/2)
.nr 54 +\n(40
.nr 41 \n(54+((6*\n(38)/2)
.nr 55 +\n(41
.nr 42 \n(55+((6*\n(38)/2)
.nr 56 +\n(42
.nr 43 \n(56+((6*\n(38)/2)
.nr 57 +\n(43
.nr 44 \n(57+((6*\n(38)/2)
.nr 58 +\n(44
.nr 45 \n(58+((6*\n(38)/2)
.nr 59 +\n(45
.nr TW \n(59
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1467 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(56u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(57u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(45u+|\n(58u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''T'\h'|\n(41u''F'\h'|\n(42u'LENGTH\h'|\n(43u'1\h'|\n(44u'FLAGS\h'|\n(45u'TIME STAMPS
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5)\h'|\n(45u'(BP6 to LENGTH)
.ta \n(54u \n(55u \n(56u \n(57u \n(58u \n(59u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u' \h'|\n(45u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.sp
.H 3 "Description of the RR System Use Field"
.sp
The purpose of the "RR" System Use Field is to indicate which
System Use Fields defined by the Rock Ridge Interchange Protocol are
actually recorded for the current directory record.
This System Use Field is optional.
No more than one "RR" System Use Field shall
appear in (all) the System Use Area(s) for a single directory record.
.sp
The use of an "RR" field may allow some additional optimization
in implementations which utilize this information to eliminate
searching through the entire System Use Area (and all Continuations)
for a System Use Field which may not even have been recorded.
For this reason, if an "RR" field is recorded, it should be one of the
first fields recorded in the System Use Area.
.bp
.sp
The format of the "RR" System Use Field is as follows:
.sp
.VL 10 5
.LI "[1]"
"BP 1 to BP 2 - Signature Word" shall indicate that the System Use Field
is a "RR" type System Use Field.
The bytes in this field shall be (52)(52) ("RR").
.LI "[2]"
"BP 3 - Length" shall specify as an 8-bit number the length in
bytes of the "RR" System Use Field.
The number in this field shall be 5 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[3]"
"BP 4 - System Use Field Version" shall specify as an 8-bit number an
identification of the version of the "RR" System Use Field.
The number in this field shall be 1 for this version.
This field shall be recorded according to ISO 9660:1988 Format
section 7.1.1.
.LI "[4]"
"BP 5 - Flags" shall contain bit field flags numbered 0
to 7 starting with the least significant bit as follows:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \wPosition
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w\_
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w0
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w1
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w2
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w3
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w4
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w5
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w6
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w7
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wIf set to 1, indicates, for this Directory Record
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w\_
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"PX" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"PN" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"SL" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"NM" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"CL" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"PL" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"RE" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w"TF" System Use Field recorded
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1524 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Position\h'|\n(41u'If set to 1, indicates, for this Directory Record
.ta \n(46u \n(47u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(46u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(47u'\s0
.vs \n(36u
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'0\h'|\n(41u'"PX" System Use Field recorded
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'1\h'|\n(41u'"PN" System Use Field recorded
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'2\h'|\n(41u'"SL" System Use Field recorded
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'3\h'|\n(41u'"NM" System Use Field recorded
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'4\h'|\n(41u'"CL" System Use Field recorded
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'5\h'|\n(41u'"PL" System Use Field recorded
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'6\h'|\n(41u'"RE" System Use Field recorded
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'7\h'|\n(41u'"TF" System Use Field recorded
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-13
.LE
.sp
.sp
.TB "RR System Use Field - Version 1"
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 52 53 54 55 56
.nr 52 0
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w'R'
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w(BP1)
.if \n(52<\n(38 .nr 52 \n(38
.nr 38 \w
.if \n(52<\n(38 .nr 52 \n(38
.52
.rm 52
.nr 53 0
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w'R'
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w(BP2)
.if \n(53<\n(38 .nr 53 \n(38
.nr 38 \w
.if \n(53<\n(38 .nr 53 \n(38
.53
.rm 53
.nr 54 0
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \wLENGTH
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w(BP3)
.if \n(54<\n(38 .nr 54 \n(38
.nr 38 \w
.if \n(54<\n(38 .nr 54 \n(38
.54
.rm 54
.nr 55 0
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w1
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w(BP4)
.if \n(55<\n(38 .nr 55 \n(38
.nr 38 \w
.if \n(55<\n(38 .nr 55 \n(38
.55
.rm 55
.nr 56 0
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \wFLAGS
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w(BP5)
.if \n(56<\n(38 .nr 56 \n(38
.nr 38 \w
.if \n(56<\n(38 .nr 56 \n(38
.56
.rm 56
.nr 38 1n
.nr 51 0
.nr 40 \n(51+((2*\n(38)/2)
.nr 52 +\n(40
.nr 41 \n(52+((6*\n(38)/2)
.nr 53 +\n(41
.nr 42 \n(53+((6*\n(38)/2)
.nr 54 +\n(42
.nr 43 \n(54+((6*\n(38)/2)
.nr 55 +\n(43
.nr 44 \n(55+((6*\n(38)/2)
.nr 56 +\n(44
.nr TW \n(56
.nr TW +((2*\n(38)/2)
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1536 file Input is too wide - \n(TW units
.ne 4v+0p
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.if \n(#T>=0 .nr #a \n(#T
.if \n(T. .vs \n(.vu-\n(.sp
.if \n(T. \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.if \n(T. .vs
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|0'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(41u+|\n(52u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(42u+|\n(53u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(43u+|\n(54u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'(|\n(44u+|\n(55u)/2u'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'\h'|\n(TWu'
.if \n(#a>=0 .sp -1
.if \n(#a>=0 \h'|\n(TWu'\s\n(33\h'-\n(#~u'\L'|\n(#au-1v'\s0\v'\n(\*(#du-\n(#au+1v'
.ls
..
.ec
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.mk #a
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u'
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u''R'\h'|\n(41u''R'\h'|\n(42u'LENGTH\h'|\n(43u'1\h'|\n(44u'FLAGS
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'(BP1)\h'|\n(41u'(BP2)\h'|\n(42u'(BP3)\h'|\n(43u'(BP4)\h'|\n(44u'(BP5)
.ta \n(52u \n(53u \n(54u \n(55u \n(56u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u' \h'|\n(42u' \h'|\n(43u' \h'|\n(44u'
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.nr #a 0
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-7
.sp
.sp
.sp
.H 2 "Required Recording and Consistency"
.sp
The "PX" System Use Fields shall be recorded in every directory
record.
All recorded instances of the "PX" and "TF" System Use Fields
in directory records referring to a single directory must be
consistent.
.bp
.sp
.H 2 "Specification of the ER System Use Field Values for RRIP"
.sp
The Extension Version number for the version of the RRIP defined
herein shall be 1.
The content of the Extension Identifier field shall be "RRIP_1991A".
The Identifier Length shall be 10.
.sp
The recommended content of the Extension Descriptor shall be "THE
ROCK RIDGE INTERCHANGE PROTOCOL PROVIDES SUPPORT FOR POSIX FILE SYSTEM
SEMANTICS."
The corresponding Description Length is 84.
.sp
The recommended content of the Extension Source shall be "PLEASE
CONTACT DISC PUBLISHER FOR SPECIFICATION SOURCE. SEE PUBLISHER
IDENTIFIER IN PRIMARY VOLUME DESCRIPTOR FOR CONTACT INFORMATION."
The corresponding Source Length is 135.
.sp
.bp
.\" Blank page for back of this chapter
.ce
.sp
.H 1 "RRIP APPLICATION PROGRAMMING INTERFACE (API)"
.sp
This section specifies an Application Programming Interface (API)
for the Rock Ridge Interchange Protocol which is implemented on top
of the System Use Sharing Protocol. This API is a supplement to the
X/Open CD-ROM Support Component (XCDR).
.sp
.H 2 "Mapping Device Files"
.sp
The major and minor numbers of device files as recorded in the System
Use Area on the CD-ROM may not match the major and minor numbers
of the physical devices.
If that is the case, the command,
.I cddevsuppl\^
can be used to change the major and minor numbers of a specific
device file on the CD-ROM.
.sp
If the system imposes a maximum value on the number of device file
mappings, this will be defined via the symbolic name CD_MAXDMAP in
.I <sys/cdrom.h>.\^
At least 50 device file mappings will be supported.
.sp
.H 2 "Obtaining CD-ROM Specific Information"
.sp
.H 3 "System Use Sharing Protocol Fields"
.sp
The CD-ROM contains System Use Fields in the System Use Areas which are
specific to the CD-ROM and cannot be obtained by standard XSI system
interfaces.
Using the command
.I cdsuf,\^
or the equivalent library function, all additional information in a
file or directory System Use Field can be accessed.
.sp
.H 3 "Changing PX Field Information"
.sp
The "POSIX File User ID" and "POSIX File Group ID" can be mapped on the
receiving system by using commands and library functions supplied by
the X/Open CD-ROM Support Component (XCDR).
.sp
.H 3 "File Name Resolution"
.sp
The fields
.I file,\^
.I filename,\^
.I path,\^
and
.I pathname\^
shall be resolved according to the Rock Ridge Interchange Protocol, which
may be the ISO 9660 name or RRIP name depending on whether an "NM" System
Use Field is present for any component of that filename.
.bp
.sp
.H 2 "Definition of CD-ROM Specific User Commands"
.sp
This sections provides manual pages which describe CD-ROM user commands
for users in detail.
The user commands are:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \wName
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w\_
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wcdsuf
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wcddevsuppl
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wDescription
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w\_
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wRetrieve a System Use Field
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wSet and get major/minor numbers of a device file
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1642 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Name\h'|\n(41u'Description
.ta \n(46u \n(47u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(46u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(47u'\s0
.vs \n(36u
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'cdsuf\h'|\n(41u'Retrieve a System Use Field
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'cddevsuppl\h'|\n(41u'Set and get major/minor numbers of a device file
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-9
.sp
.bp
.sp
.H 3 "cdsuf command"
.sp
.in 0
.ft 3
NAME
.ft 1
.in 2
.br
.ft 3
cdsuf
.ft 1
- read the System Use Fields from a System Use Area
.sp
.in 0
.ft 3
SYNOPSIS
.ft 1
.in 2
.ft 3
.br
.ft 3
cdsuf
.ft 1
[-s number] [-b] file
.sp
.in 0
.ft 3
DESCRIPTION
.ft 1
.in 2
.br
This command is used to access the System Use Fields of the System Use
Area associated with a File Section of a file or directory and to list
its contents on standard output, following any Continuation Fields that
may be present.
.sp
.in 0
.ft 3
OPTIONS
.ft 1
.in 2
.br
The following options are available:
.VL 15 5
.LI "\f3-s number\f1"
This option specifies the File Section for which the System Use Area shall
be read.
The numbering starts with one.
If this option is omitted the last File Section of that file is assumed.
.LI "\f3-b\f1"
With this option all of the System Use Fields of the System Use Area are
copied from the CD-ROM to standard output in binary format.
.LE
.sp
.in 0
.ft 3
OPERAND
.ft 1
.in 2
.br
The operand
.I file\^
is the name of any file or directory within the CD-ROM file hierarchy.
.sp
.in 0
.ft 3
STDIN
.ft 1
.in 2
.br
Not Used.
.sp
.in 0
.ft 3
INPUT FILES
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
ENVIRONMENT VARIABLES
.ft 1
.in 2
.br
LC_TIME determines the format and contents of date and time strings.
If LC_TIME is not set in the environment or is set to the empty string,
the value of LANG will be used as a default.
If LANG is not set or set to the empty string, the corresponding
value from the implementation-specific default locale will be used.
If LC_TIME or LANG contain an invalid setting, the utility will behave
as if none of the variables had been defined.
.sp
.in 0
.ft 3
STDOUT
.ft 1
.in 2
.br
The output is formatted in the form of a table which contains an entry
for each System Use Field in the System Use Area as recorded on the CD-ROM.
Each entry of the table shall have the fields
.I Signature,\^
.I Length,\^
.I Version,\^
and
.I Data\^
as specified in the System Use Sharing Protocol.
Whether to break up the
.I Data\^
field into smaller fields according to the protocol which defined the
.I Signature\^
field is left up to the implementation.
.sp
If the
.ft 3
-b
.ft 1
option is applied, the contents of the full System Use Area
are written to standard output in binary format as it is recorded on the CD-ROM.
.sp
.in 0
.ft 3
STDERR
.ft 1
.in 2
.br
Used only for diagnostic messages.
.sp
.in 0
.ft 3
OUTPUT FILES
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
EXIT STATUS
.ft 1
.in 2
.br
The following exit values are returned:
.sp
.VL 15 5
.LI "0"
successful completion
.LI "1"
file not found or file is not a file or directory within a CD-ROM file
hierarchy or access denied
.LI "2"
File Section indicated by -s does not exist
.LI "3"
File Section indicated by -s has no System Use Area
.LE
.sp
.in 0
.ft 3
CONSEQUENCES OF ERRORS
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
APPLICATION USAGE
.ft 1
.in 2
.br
The user must have read permission for
.I file\^
to execute the command successfully.
.sp
.in 0
.ft 3
EXAMPLES
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
FUTURE DIRECTIONS
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
SEE ALSO
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
CHANGE HISTORY
.ft 1
.in 2
.br
None.
.sp
.in 0
.bp
.sp
.H 3 "cddevsuppl command"
.sp
.in 0
.ft 3
NAME
.ft 1
.in 2
.br
.ft 3
cddevsuppl
.ft 1
- set and get the major and minor numbers of a device file
.sp
.in 0
.ft 3
SYNOPSIS
.ft 1
.in 2
.br
.ft 3
cddevsuppl
.ft 1
[-m mapfile | -u unmapfile] [-c]
.sp
.in 0
.ft 3
DESCRIPTION
.ft 1
.in 2
.br
This command is used to map and unmap the major and minor numbers of a device
file on a mounted CD-ROM.
.sp
If
.I cddevsuppl\^
is executed without the
.ft 3
-m
.ft 1
or
.ft 3
-u
.ft 1
option, it lists the current device file mappings
on the system.
.sp
The \f3-m mapfile\f1 and \f3-u unmapfile\f1 options are mutually exclusive.
.sp
.in 0
.ft 3
OPTIONS
.ft 1
.in 2
.br
The following options are available:
.VL 20 5
.LI "\f3-m mapfile\f1"
This option will map the major and minor numbers for device files.
The mappings are specified in
.I mapfile.\^
This file has one entry for each device file mapping in the format:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 48 49 50
.nr 48 0
.nr 38 \wdevice_file_path
.if \n(48<\n(38 .nr 48 \n(38
.48
.rm 48
.nr 49 0
.nr 38 \wnew_major
.if \n(49<\n(38 .nr 49 \n(38
.49
.rm 49
.nr 50 0
.nr 38 \wnew_minor
.if \n(50<\n(38 .nr 50 \n(38
.50
.rm 50
.nr 38 1n
.nr 47 0
.nr 40 \n(47+((0*\n(38)/2)
.nr 48 +\n(40
.nr 41 \n(48+((6*\n(38)/2)
.nr 49 +\n(41
.nr 42 \n(49+((6*\n(38)/2)
.nr 50 +\n(42
.nr TW \n(50
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1923 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(48u \n(49u \n(50u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'device_file_path\h'|\n(41u'new_major\h'|\n(42u'new_minor
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-4
.sp
The fields are separated by white space.
The entries are separated by newlines.
Anything beyond the third field shall be treated as a comment.
.sp
The maximum number of mappings is defined in the header file
.I <sys/cdrom.h>.\^
A previous device file mapping for a specific device file is overridden
if that device file that is mapped again.
.sp
.LI "\f3-u unmapfile\f1"
This option will unmap the major and minor numbers for device files.
The mappings are specified in
.I unmapfile.\^
This file has one entry for each device file mapping in the format:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 44
.nr 44 0
.nr 38 \wdevice_file_path
.if \n(44<\n(38 .nr 44 \n(38
.44
.rm 44
.nr 38 1n
.nr 43 0
.nr 40 \n(43+((0*\n(38)/2)
.nr 44 +\n(40
.nr TW \n(44
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1944 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(44u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'device_file_path
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-4
.sp
The entries are separated by newlines.
Anything beyond the first field shall be treated as a comment.
.sp
.LI "\f3-c\f1"
This option is only useful when used in combination with the
\f3-m mapfile\f1 or \f3-u unmapfile\f1
options.
The
.ft 3
-c
.ft 1
option will cause
.I cddevsuppl\^
to continue processing the device file mappings if an error is returned
for a specific device file mapping.
An error message for that specific device file will be printed to
standard error.
The default action is to stop processing when an error has occurred.
.LE
.sp
.in 0
.ft 3
OPERAND
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
STDIN
.ft 1
.in 2
.br
Not used.
.sp
.in 0
.ft 3
INPUT FILES
.ft 1
.in 2
.br
The input files are text files.
.sp
.in 0
.ft 3
ENVIRONMENT VARIABLES
.ft 1
.in 2
.br
No environment variables affect the execution of
.I cddevsuppl.\^
Note that LC_CTYPE will not be used in filename conversion.
.sp
.in 0
.ft 3
STDOUT
.ft 1
.in 2
.br
If no options are used the current device file mappings are listed on
standard output.
In the case of \f3-m mapfile\f1, the new setting is listed
if the mapping was completed successfully.
In the case of \f3-u unmapfile\f1, the device file and
the major/minor numbers as recorded on the CD-ROM are listed if
the unmapping was completed successfully.
.sp
.in 0
.ft 3
STDERR
.ft 1
.in 2
.br
Used only for diagnostic messages.
.sp
.in 0
.ft 3
OUTPUT FILES
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
EXIT STATUS
.ft 1
.in 2
.br
The following exit values are returned:
.sp
.VL 15 5
.LI "0"
successful completion
.LI "1"
file not found or file is not a file or directory within a CD-ROM file
hierarchy or access denied
.LI "2"
not user with appropriate privileges
.LI "3"
too many mappings
.LI "4"
parameter error or bad format in a mapping file
.LI "5"
file is not a device file
.LI "6"
file not previously mapped
.LE
.sp
.in 0
.ft 3
CONSEQUENCES OF ERRORS
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
APPLICATION USAGE
.ft 1
.in 2
.br
Only a user with appropriate privileges may change administrative CD-ROM
features successfully.
To read the current device file mappings, the user must have read
permission on the device file.
.sp
Mappings should be established before affected device files are used.
If the command is applied for device file mappings when device files
have already been opened, the
effect of this command on these files is undefined.
.sp
The device file mappings for a mounted CD-ROM are eliminated when the
CD-ROM is unmounted.
.sp
.in 0
.ft 3
EXAMPLES
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
FUTURE DIRECTIONS
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
SEE ALSO
.ft 1
.in 2
.br
None.
.sp
.in 0
.ft 3
CHANGE HISTORY
.ft 1
.in 2
.br
None.
.sp
.in 0
.bp
.sp
.H 2 "Definition of CD-ROM Specific Library Functions for Users"
.sp
This sections provides manual pages which describe CD-ROM library functions
for users in detail.
The library routines are:
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \wName
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w\_
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wcd_suf()
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wcd_setdevmap()
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wcd_getdevmap()
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wDescription
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w\_
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wRetrieve a System Use Field
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wSet mappings of major/minor numbers
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wGet mappings of major/minor numbers
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2135 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Name\h'|\n(41u'Description
.ta \n(46u \n(47u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(46u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(47u'\s0
.vs \n(36u
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'cd_suf()\h'|\n(41u'Retrieve a System Use Field
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'cd_setdevmap()\h'|\n(41u'Set mappings of major/minor numbers
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u' \h'|\n(41u'
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'cd_getdevmap()\h'|\n(41u'Get mappings of major/minor numbers
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-11
.sp
.bp
.sp
.H 3 "cd_suf library routine"
.sp
.in 0
.ft 3
NAME
.ft 1
.br
.in 2
.ft 3
cd_suf
.ft 1
- read System Use Field from a specified System Use Area
.sp
.in 0
.ft 3
SYNOPSIS
.ft 1
.in 2
.ft 3
.br
#include <sys/cdrom.h>
.sp
int cd_suf (path, fsec, signature, index, buf, buflen)
.br
char *path;
.br
int fsec;
.br
char signature[2];
.br
int index;
.br
char *buf;
.br
int buflen;
.sp
.ft 1
.in 0
.ft 3
DESCRIPTION
.ft 1
.in 2
.br
.I Cd_suf\^
returns a System Use Field in the System Use Area for
.I path.\^
.sp
.I Path\^
points to a file or directory within the CD-ROM file hierarchy.
.sp
.I Fsec\^
specifies the File Section of that file.
The numbering starts with one.
If
.I fsec\^
is set to -1, the System Use Area of the last File Section of that file
is assumed.
.sp
.I Signature\^
is the 2 byte signature to look for and return from the System Use Area.
.sp
.I Index\^
is the occurrence of
.I signature\^
to return.
If
.I signature\^
is a NULL pointer, return the
.I index\^
System Use Field starting from the beginning of the System Use Area.
Otherwise, return the
.I index\^
occurrence of
.I signature.\^
The
.I index\^
number of the first System Use Field of any
.I signature\^
is one.
.sp
.I Buf\^
and
.I buflen\^
are the buffer and buffer length in which to place the System Use Field.
.sp
.in 0
.ft 3
RETURN VALUE
.ft 1
.in 2
.br
.I Cd_suf\^
will return the number of bytes placed in
.I buf\^
if successful.
.I Cd_suf\^
will return 0 if the
.I signature\^
field is not found.
In case of error, -1 is returned and
.I errno\^
is set to indicate the error.
.sp
.in 0
.ft 3
ERRORS
.ft 1
.in 2
.br
The
.I cd_suf()\^
function will fail if:
.sp
.VL 15
.LI "[EACCESS]"
Search permission is denied for a component of the
.I path\^
prefix or read permission on the file or directory pointed to by
.I path\^
is denied.
.LI "[ENAMETOOLONG]"
The length of the
.I path\^
string exceeds {PATH_MAX} or a pathname component is longer than
{NAME_MAX} while {_POSIX_NO_TRUNC} is in effect.
.LI "[ENOENT]"
A component of
.I path\^
does not exist or the
.I path\^
argument points to an empty string.
.br
The File Section indicated by
.I fsec\^
has no System Use Area.
.LI "[ENOTDIR]"
A component of the
.I path\^
prefix is not a directory.
.LI "[EFAULT]"
The address of
.I buf,\^
.I signature\^
or
.I path\^
is invalid.
.LI "[EINVAL]"
The value of
.I fsec,\^
.I index\^
or
.I buflen\^
is invalid.
.br
The argument
.I path\^
points to a file/directory not within a CD-ROM file hierarchy.
.LI "[ENODEV]"
The Volume containing the File Section indicated by
.I fsec\^
is not mounted.
.LI "[ENXIO]"
The CD-ROM is not in the drive or a read error occurred.
.LI "[EINTR]"
A signal was caught during the
.I cd_suf()\^
function.
.LI "[EMFILE]"
{OPEN_MAX} file descriptors are currently open in the calling process.
.LI "[ENFILE]"
The system file table is full.
.LE
.sp
.in 0
.ft 3
SEE ALSO
.ft 1
.in 2
.br
<sys/cdrom.h>
.sp
.in 0
.bp
.sp
.H 3 "cd_setdevmap library routine"
.sp
.in 0
.ft 3
NAME
.ft 1
.in 2
.br
.ft 3
cd_setdevmap
.ft 1
- set mappings of major/minor numbers
.sp
.in 0
.ft 3
SYNOPSIS
.ft 1
.in 2
.ft 3
.br
#include <sys/cdrom.h>
.sp
int cd_setdevmap (path, cmd, new_major, new_minor)
.br
char *path;
.br
int cmd;
.br
int *new_major;
.br
int *new_minor;
.sp
.ft 1
.in 0
.ft 3
DESCRIPTION
.ft 1
.in 2
.br
This function sets or unsets (based on
.I cmd\^)
the major and minor numbers of one device file on a mounted CD-ROM.
The argument
.I path\^
points to a file or directory within the CD-ROM file hierarchy.
.sp
If
.I cmd\^
is CD_SETDMAP, this function maps the
.I new_major
major number and the
.I new_minor
minor number to the device file pointed to by
.I path.
.I New_major\^
specifies the new major number for the device file.
.I New_minor\^
specifies the new minor number for the device file.
Any device file mapping for the device file
.I path\^
set with a previous invocation of
.I cd_setdevmap()\^
is overridden by this invocation of
.I cd_setdevmap().\^
.sp
If
.I cmd\^
is CD_UNSETDMAP, this function unmaps the mapped major and
minor numbers of the device file pointed to by
.I path.\^
The value of the recorded major number on the CD-ROM shall be returned in
.I new_major.\^
The value of the recorded minor number on the CD-ROM shall be returned in
.I new_minor.\^
.sp
See
.ft 3
Section 1.1, Mapping Device Files
.ft 1
for further information.
.sp
.in 0
.ft 3
RETURN VALUE
.ft 1
.in 2
.br
For CD_SETDMAP,
.I cd_setdevmap\^
will return one if the device file is successfully mapped
(a return value of zero means no more mappings allowed).
.sp
For CD_UNSETDMAP,
.I cd_setdevmap\^
will return one if the device file is successfully unmapped
(a return value of zero means mapping not found).
.sp
In case of error, -1 is returned and
.I errno\^
is set to indicate the error.
.sp
.in 0
.ft 3
ERRORS
.ft 1
.in 2
.br
.VL 15
.LI "[EACCESS]"
Search permission is denied for a component of the
.I path\^
prefix or read permission on the device file pointed to by
.I path\^
is denied.
.LI "[ENAMETOOLONG]"
The length of the
.I path\^
string exceeds {PATH_MAX} or a pathname component is longer than
{NAME_MAX} while {_POSIX_NO_TRUNC} is in effect.
.LI "[ENOENT]"
A component of
.I path\^
does not exist or the
.I path\^
argument points to an empty string.
.LI "[ENOTDIR]"
A component of the
.I path\^
prefix is not a directory.
.LI "[EFAULT]"
The address of
.I path,\^
.I new_major,\^
or
.I new_minor\^
is invalid.
.LI "[EINVAL]"
The value of
.I cmd\^
is invalid.
.br
The argument
.I path\^
points to a file/directory not within a CD-ROM file hierarchy.
.br
The file pointed to by
.I path\^
is not a device file.
.LI "[EPERM]"
User does not have appropriate privileges to set/unset device file
major/minor values.
.LI "[ENXIO]"
The CD-ROM is not in the drive or a read error occurred.
.LI "[EINTR]"
A signal was caught during the
.I cd_setdevmap()\^
function.
.LI "[EMFILE]"
{OPEN_MAX} file descriptors are currently open in the calling process.
.LI "[ENFILE]"
The system file table is full.
.LE
.sp
.in 0
.ft 3
APPLICATION USAGE
.ft 1
.in 2
.br
The use of
.I cd_setdevmap()\^
is restricted to a user with appropriate privileges.
The maximum number of mappings is defined in
.I <sys/cdrom.h>.\^
Mappings should be established before affected device files are used.
If this function is applied for device files that have already been opened,
the effect of this function on these files is undefined.
The device file mappings for a mounted CD-ROM are eliminated when the
CD-ROM is unmounted.
.sp
.in 0
.ft 3
SEE ALSO
.ft 1
.in 2
.br
<sys/cdrom.h>
.sp
.in 0
.bp
.sp
.H 3 "cd_getdevmap library routine"
.sp
.in 0
.ft 3
NAME
.ft 1
.in 2
.br
.ft 3
cd_getdevmap
.ft 1
- get mappings of major/minor numbers
.sp
.in 0
.ft 3
SYNOPSIS
.ft 1
.in 2
.ft 3
.br
#include <sys/cdrom.h>
.sp
int cd_getdevmap (path, pathlen, index, new_major, new_minor)
.br
char *path;
.br
int pathlen;
.br
int index;
.br
int *new_major;
.br
int *new_minor;
.sp
.ft 1
.in 0
.ft 3
DESCRIPTION
.ft 1
.in 2
.br
This function gets
the major and minor numbers of one device file on a mounted CD-ROM.
The argument
.I path\^
points to a file or directory within the CD-ROM file hierarchy.
The argument
.I index\^
refers to the \f2index\f1'th mapped device file.
Mappings can be obtained by
.I path\^
or
.I index.\^
.sp
If
.I index\^
is zero, this function gets the mapped major and minor numbers
of the device file pointed to by
.I path.\^
The value of the mapped major number shall be returned in
.I new_major.\^
The value of the mapped minor number shall be returned in
.I new_minor.\^
The value of
.I pathlen\^
is not used.
.sp
If
.I index\^
is not zero, this function gets the major and minor numbers
and pathname of the \f2index\f1'th mapped device file.
Numbering for
.I index\^
starts at one.
The value of the mapped major number shall be returned in
.I new_major.\^
The value of the mapped minor number shall be returned in
.I new_minor.\^
The pathname of the device file shall be returned in
.I path.\^
If the length of the pathname for the device file is longer than
.I pathlen\^
the pathname returned in
.I path\^
will be truncated to
.I pathlen\^
length and will not be NULL terminated.
.sp
See
.ft 3
Section 1.1, Mapping Device Files
.ft 1
for further information.
.sp
.in 0
.ft 3
RETURN VALUE
.ft 1
.in 2
.br
.I cd_getdevmap\^
will return the length of pathname if the device file is
successfully returned
(a return value of zero means mapping not found).
Note: if the pathname is truncated, the return value will be
larger than
.I pathlen.\^
.sp
In case of error, -1 is returned and
.I errno\^
is set to indicate the error.
.sp
.in 0
.ft 3
ERRORS
.ft 1
.in 2
.br
.VL 15
.LI "[EACCESS]"
Search permission is denied for a component of the
.I path\^
prefix or read permission on the device file pointed to by
.I path\^
is denied.
.LI "[ENAMETOOLONG]"
The length of the
.I path\^
string exceeds {PATH_MAX} or a pathname component is longer than
{NAME_MAX} while {_POSIX_NO_TRUNC} is in effect.
.LI "[ENOENT]"
A component of
.I path\^
does not exist or the
.I path\^
argument points to an empty string.
.LI "[ENOTDIR]"
A component of the
.I path\^
prefix is not a directory.
.LI "[EFAULT]"
The address of
.I path,\^
.I new_major,\^
or
.I new_minor\^
is invalid.
.LI "[EINVAL]"
The value of
.I index\^
or
.I pathlen\^
is invalid.
.br
The argument
.I path\^
points to a file/directory not within a CD-ROM file hierarchy.
.br
The file pointed to by
.I path\^
is not a device file.
.LI "[ENXIO]"
The CD-ROM is not in the drive or a read error occurred.
.LI "[EINTR]"
A signal was caught during the
.I cd_getdevmap()\^
function.
.LI "[EMFILE]"
{OPEN_MAX} file descriptors are currently open in the calling process.
.LI "[ENFILE]"
The system file table is full.
.LE
.sp
.in 0
.ft 3
APPLICATION USAGE
.ft 1
.in 2
.br
The maximum number of mappings is defined in
.I <sys/cdrom.h>.\^
The device file mappings for a mounted CD-ROM are undone when the
CD-ROM is unmounted.
.sp
The
.I index\^
numbers from 1 to
.I n\^
(where
.I n\^
is the number of the last device file mapping)
are always guaranteed to have a device file mapping associated
with the number.
Thus if an application wishes to successively delete all
device file mappings, one at a time, it would call
.I cd_getdevmap()\^
with
.I index\^
equal to 1, and then
.I cd_setdevmap()\^
with CD_UNSETDMAP in a loop until
.I cd_getdevmap()\^
returns zero.
.sp
.in 0
.ft 3
SEE ALSO
.ft 1
.in 2
.br
<sys/cdrom.h>
.sp
.in 0
.bp
.sp
.H 2 "Header"
.sp
.in 0
.ft 3
NAME
.ft 1
.br
.in 2
.ft 3
cdrom.h
.ft 1
- RRIP definitions
.sp
.in 0
.ft 3
SYNOPSIS
.ft 1
.in 2
.ft 3
.br
#include <sys/cdrom.h>
.sp
.ft 1
.in 0
.ft 3
DESCRIPTION
.ft 1
.in 2
.br
The
.I cdrom.h\^
header contains the RRIP constant definitions for the RRIP library functions.
If XCDR is supported, this header file will also contain
the XCDR constants and structure declarations for the XCDR library functions.
.sp
The function
.I cd_setdevmap()\^
uses the following values for the argument
.I cmd:\^
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \wCD_SETDMAP
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wCD_UNSETDMAP
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wSet device file mapping
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \wUnset device file mapping
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2774 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'CD_SETDMAP\h'|\n(41u'Set device file mapping
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'CD_UNSETDMAP\h'|\n(41u'Unset device file mapping
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-5
.sp
If an implementation imposes a limit on the number of device file mappings,
they will be defined by the following symbolic name.
The definition of this symbolic name may be omitted from
.I <sys/cdrom.h>\^
if the actual value of the limit is indeterminate but greater than
the stated minimum.
Applications should therefore only use this symbol in code
conditionally compiled on the existence of this symbol.
.sp
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if \n(.T .if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 46 47
.nr 46 0
.nr 38 \wName
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \w\_
.if \n(46<\n(38 .nr 46 \n(38
.nr 38 \wCD_MAXDMAP
.if \n(46<\n(38 .nr 46 \n(38
.46
.rm 46
.nr 47 0
.nr 38 \wMinimum Acceptable Value
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w\_
.if \n(47<\n(38 .nr 47 \n(38
.nr 38 \w50
.if \n(47<\n(38 .nr 47 \n(38
.47
.rm 47
.nr 38 1n
.nr 45 0
.nr 40 \n(45+((0*\n(38)/2)
.nr 46 +\n(40
.nr 41 \n(46+((6*\n(38)/2)
.nr 47 +\n(41
.nr TW \n(47
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2791 file Input is too wide - \n(TW units
.nr #I \n(.i
.in +(\n(.lu-\n(TWu-\n(.iu)/2u
.fc
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.nr 35 1m
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'Name\h'|\n(41u'Minimum Acceptable Value
.ta \n(46u \n(47u
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
.nr 35 \n(.vu
.nr 31 \n(.f
\&\h'|\n(40u'\h'|\n(40u'\s\n(33\l'|\n(46u'\s0\h'|\n(41u'\h'|\n(41u'\s\n(33\l'|\n(47u'\s0
.vs \n(36u
.ta \n(46u \n(47u
.nr 35 1m
.nr 31 \n(.f
\&\h'|\n(40u'CD_MAXDMAP\h'|\n(41u'50
.fc
.nr T. 1
.T# 1
.in \n(#Iu
.35
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-6
.sp
.sp
.bp
.sp
.H 2 "Recommendations for CD-ROM Publishers"
.sp
Unless the CD-ROM is targetted at a specific collection of systems, the
values for major and minor numbers of device files will not identify
the correct values on the receiving system.
Also the range of values for device file major and minor numbers
that a system can handle might be smaller than what can be recorded
on the CD-ROM.
When producing a CD-ROM to be used on various systems, it is recommended
that the publisher number the device major and minor numbers consecutively
starting at 0 and provide the System Administrator with sufficient
information to map each recorded major and minor number to the appropriate
values for the target system.
.sp
.sp
.H 1 "BIBLIOGRAPHY"
.sp
.BL
.LI
ISO 9660:1988 - Information Processing - Volume and file structure of
CD-ROM for information interchange
.LI
IEEE Standard Portable Operating System Interface for Computer Environments,
IEEE std 1003.1-1988 (a.k.a POSIX Standard), New York, New York:IEEE
.LI
X/Open CD-ROM Support Component (XCDR), Version 4.0 December 1990
.LI
X/Open Portability Guide, Volume 3, XSI Supplementary Definitions,
Prentice Hall, 1989
.LI
System Use Sharing Protocol, Rock Ridge Group
.LI
Wong, T. September 12, 1989. Extensions to the ISO 9660 CD-ROM Volume
and File Structure Format to support POSIX File System Semantics.
.LE
.bp
.TC 1 1 4