DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦5772aa520⟧ TextFile

    Length: 3211 (0xc8b)
    Types: TextFile
    Notes: UNIX file
    Names: »dosinode.h«

Derivation

└─⟦a6ab2eb36⟧ Bits:30004042/kconfig3.imd SW95705I 386/ix Multi-user Release 1.2
└─⟦a6ab2eb36⟧ UNIX Filesystem
    └─⟦this⟧ »kc/new/usr/include/sys/fs/dosinode.h« 

TextFile

/*
 * Copyrighted as an unpublished work.
 * (c) Copyright 1987 INTERACTIVE Systems Corporation
 * All rights reserved.
 *
 * RESTRICTED RIGHTS
 *
 * These programs are supplied under a license.  They may be used,
 * disclosed, and/or copied only as permitted under such license
 * agreement.  Any copy must contain the above copyright notice and
 * this restricted rights notice.  Use, copying, and/or disclosure
 * of the programs is strictly prohibited unless otherwise provided
 * in the license agreement.
 *
 */

#ident "@(#)dosinode.h	1.2 - 87/07/31"
#ident "@(#) (c) Copyright INTERACTIVE Systems Corporation 1987"

/*
 * DOS time and date structure.
 */
struct dostime {
	union {
		struct {                        /* Format of time field */
			ushort  tf_2sec : 5,    /* seconds >> 1         */
				tf_min  : 6,    /* minutes              */
				tf_hour : 5;    /* hours                */
		} dt_timef;

		ushort dt_timeuf;               /* Unformatted time     */
	} dt_time;

	union {
		struct {                        /* Format of date field */
			ushort  df_day  : 5,    /* day                  */
				df_month: 4,    /* month                */
				df_year : 7;    /* 1980 - year          */
		} dt_datef;

		ushort dt_dateuf;               /* Unformatted date     */
	} dt_date;
};

/*
 * DOS file system inode structure.
 * Pointed to by i_fsptr in the generic inode.
 */

/* fix alignment! */

struct dosinode {
	unchar  dosi_flags;             /* flags defined below          */
	unchar  dosi_attrib;            /* attributes                   */
	ushort  dosi_mode;              /* file type and permissions    */
	struct dostime dosi_dostime;    /* creation/update time & date  */
	time_t  dosi_unixtime;          /* creation/update unix time    */
	union {
		struct {
			ushort  dosi_prevlc; /* previous logical cluster  */
			ushort  dosi_prevpc; /* previous physical cluster */
		} dosi_us;
		struct dosinode *dosi_nxt;   /* next free dosinode      */
	} dosi_u;
	ushort  dosi_start;             /* starting cluster or sector   */
	ushort  dosi_savedstart;        /* saved starting cluster       */
	ushort  dosi_lastclstr;         /* last cluster in file         */
	ushort  dosi_prealloc;          /* number of pre-allocated clusters */
};

/* flags */
#define DOSIFREE        0       /* DOS inode table entry is free        */
#define DOSIALLOC       1       /* DOS inode table entry is allocated   */

/* DOS file attributes */
#define READONLY       0x01
#define HIDDEN         0x02
#define SYSTEM         0x04
#define VOLLABEL       0x08
#define SUBDIR         0x10
#define ARCHIVE        0x20

/* DOS update entry commands */
#define DUE_IFREE       001             /* Set DIRERASED char in entry  */
#define DUE_RENAME      002             /* Rename entry by copying name */
#define DUE_INERASE     003             /* Set DIRINERASE char in entry */
#define DUE_GFREE       004             /* Copy entry and set DIRERASED */

#define DOS_LINK_REFCNT 2               /* Needed ref count for "link"  */

#define dosi_prevlclst  dosi_u.dosi_us.dosi_prevlc
#define dosi_prevpclst  dosi_u.dosi_us.dosi_prevpc
#define dosi_next       dosi_u.dosi_nxt

extern struct dosinode dosinode[];