Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cdfsdir(4) — HP-UX 9.05

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fsctl(2)

stat(2)

cdrom(4)

cdfs(4)

cdnode(4)

cdfsdir(4)

NAME

cdfsdir − format of CDFS directories

SYNOPSIS

#include <sys/types.h>
#include <sys/cdfsdir.h>

REMARKS

This entry describes the directory format for the CDFS file system.  Refer to other dir(4) manual pages for information valid for other file systems.

DESCRIPTION

The CDFS file system supports ordinary files and directories.  The fact that a file is a directory is indicated by a bit in the directory record for that file.  The structure of a directory record (as given in sys/cdfsdir.h) is:

#define CDMINNAMLEN    1        /*Min. length of file identifier*/
 struct min_cddir {
    u_char    mincdd_reclen;      /*length of directory record in bytes*/
    u_char    mincdd_xar_len;     /*length of XAR in logic blocks*/
    u_int     mincdd_loc_lsb;     /*logic block number of the extent in LSB*/
    u_int     mincdd_loc_msb;     /*logic block number of the extent in MSB*/
    u_int     mincdd_size_lsb;    /*size (in bytes) of the file section in LSB*/
    u_int     mincdd_size_msb;    /*size (in bytes) of the file section in MSB*/
    u_char    mincdd_year;        /*years since 1900*/
    u_char    mincdd_month;       /*month*/
    u_char    mincdd_day;         /*day*/
    u_char    mincdd_hour;        /*hour*/
    u_char    mincdd_minute;      /*minute*/
    u_char    mincdd_second;      /*second*/
    char      mincdd_timezone;    /*timezone, offset from Greenwich Mean Time
                                  in number of 15 minutes intervals from
                                  -48(West) to -52(East)*/
    u_char    mincdd_flag;
    u_char    mincdd_unit_size;   /*size (in logic blocks) of file unit*/
    u_char    mincdd_lg_size;     /*size (in logic blocks) of interleave gap*/
    u_short   mincdd_vol_seq_lsb; /*sequence num. of disc has the extent(LSB)*/
    u_short   mincdd_vol_seq_msb; /*sequence num. of disc has the extent(MSB)*/
    u_char    mincdd_idlen;       /*file id length in bytes*/
    char      mincdd_file_id[CDMINNAMLEN];
};

The directory record includes the following information:

• Length of the extended attribute record, if any;

• Block number where the file begins;

• Size of the file;

• Date and time when file was recorded;

• Flag value specifying CD-ROM -specific attributes (such as file type);

• File’s file unit size (for interleaving);

• File’s interleave gap size (for interleaving);

• File name. 

The first two records in any directory are those for .  and ...  The first is an entry for the directory itself; the second is for the parent directory.  In the case of the root directory, .  and ..  both refer to the root directory. 

Each file or directory can optionally have additional information specified for it through a data structure called the extended attribute record (XAR).  An XAR looks like this:

#define YEAR_DIGIT     4
#define MONTH_DIGIT    2
#define DAY_DIGIT      2
#define HOUR_DIGIT     2
#define MINUTE_DIGIT   2
#define SECOND_DIGIT   2
#define ZONE_DIGIT     1
 struct cdxar_iso {
    u_short  xar_uid_lsb;
    u_short  xar_uid_msb;
    u_short  xar_gid_lsb;
    u_short  xar_gid_msb;
    u_short  xar_perm;
    char     xar_create_year[YEAR_DIGIT];
    char     xar_create_month[MONTH_DIGIT];
    char     xar_create_day[DAY_DIGIT];
    char     xar_create_hour[HOUR_DIGIT];
    char     xar_create_minute[MINUTE_DIGIT];
    char     xar_create_second[SECOND_DIGIT];
    char     xar_create_centsecond[SECOND_DIGIT];
    char     xar_create_zone[ZONE_DIGIT];
    char     xar_mod_year[YEAR_DIGIT];
    char     xar_mod_month[MONTH_DIGIT];
    char     xar_mod_day[DAY_DIGIT];
    char     xar_mod_hour[HOUR_DIGIT];
    char     xar_mod_minute[MINUTE_DIGIT];
    char     xar_mod_second[SECOND_DIGIT];
    char     xar_mod_centsecond[SECOND_DIGIT];
    char     xar_mod_zone[ZONE_DIGIT];
    char     xar_exp_year[YEAR_DIGIT];
    char     xar_exp_month[MONTH_DIGIT];
    char     xar_exp_day[DAY_DIGIT];
    char     xar_exp_hour[HOUR_DIGIT];
    char     xar_exp_minute[MINUTE_DIGIT];
    char     xar_exp_second[SECOND_DIGIT];
    char     xar_exp_centsecond[SECOND_DIGIT];
    char     xar_exp_zone[ZONE_DIGIT];
    char     xar_eff_year[YEAR_DIGIT];
    char     xar_eff_month[MONTH_DIGIT];
    char     xar_eff_day[DAY_DIGIT];
    char     xar_eff_hour[HOUR_DIGIT];
    char     xar_eff_minute[MINUTE_DIGIT];
    char     xar_eff_second[SECOND_DIGIT];
    char     xar_eff_centsecond[SECOND_DIGIT];
    char     xar_eff_zone[ZONE_DIGIT];
    /*actually longer. */
};

The XAR contains the following information:

• User ID of the file’s owner;

• Group ID of the group to which the file belongs;

• A 16-bit value specifying access permissions;

• File creation date and time;

• File’s modification date and time;

• File’s expiration date and time;

• File’s effective date and time;

• Other system- and application-dependent data. 

Refer to cdrom(4) for more information regarding XAR s. 

FILES

/usr/include/sys/cdfsdir.h

SEE ALSO

fsctl(2), stat(2), cdrom(4), cdfs(4), cdnode(4). 

Hewlett-Packard Company  —  HP-UX Release 9.0: August 1992

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026