diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-08-25 09:12:35 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-08-25 09:12:35 +0000 |
commit | c7fc24dc4420057f103afe8fc64524ebc25c5d37 (patch) | |
tree | 3682407a599b8f9f03fc096298134cafba1c9b2f /include/linux/umsdos_fs.h | |
parent | 1d793fade8b063fde3cf275bf1a5c2d381292cd9 (diff) |
o Merge with Linux 2.1.116.
o New Newport console code.
o New G364 console code.
Diffstat (limited to 'include/linux/umsdos_fs.h')
-rw-r--r-- | include/linux/umsdos_fs.h | 179 |
1 files changed, 93 insertions, 86 deletions
diff --git a/include/linux/umsdos_fs.h b/include/linux/umsdos_fs.h index b5f6b38c7..c9cfd16e6 100644 --- a/include/linux/umsdos_fs.h +++ b/include/linux/umsdos_fs.h @@ -24,8 +24,8 @@ struct umsdos_fake_info { - char fname[13]; - int len; + char fname[13]; + int len; }; #define UMSDOS_MAXNAME 220 @@ -33,99 +33,106 @@ struct umsdos_fake_info { /* of it is written to disk */ /* nice though it would be, I can't change this and preserve backward compatibility */ struct umsdos_dirent { - unsigned char name_len; /* if == 0, then this entry is not used */ - unsigned char flags; /* UMSDOS_xxxx */ - unsigned short nlink; /* How many hard links point to this entry */ - uid_t uid; /* Owner user id */ - gid_t gid; /* Group id */ - time_t atime; /* Access time */ - time_t mtime; /* Last modification time */ - time_t ctime; /* Creation time */ - dev_t rdev; /* major and minor number of a device */ - /* special file */ - umode_t mode; /* Standard UNIX permissions bits + type of */ - char spare[12]; /* unused bytes for future extensions */ - /* file, see linux/stat.h */ - char name[UMSDOS_MAXNAME]; /* Not '\0' terminated */ - /* but '\0' padded, so it will allow */ - /* for adding news fields in this record */ - /* by reducing the size of name[] */ + unsigned char name_len; /* if == 0, then this entry is not used */ + unsigned char flags; /* UMSDOS_xxxx */ + unsigned short nlink; /* How many hard links point to this entry */ + uid_t uid; /* Owner user id */ + gid_t gid; /* Group id */ + time_t atime; /* Access time */ + time_t mtime; /* Last modification time */ + time_t ctime; /* Creation time */ + dev_t rdev; /* major and minor number of a device */ + /* special file */ + umode_t mode; /* Standard UNIX permissions bits + type of */ + char spare[12]; /* unused bytes for future extensions */ + /* file, see linux/stat.h */ + char name[UMSDOS_MAXNAME]; /* Not '\0' terminated */ + /* but '\0' padded, so it will allow */ + /* for adding news fields in this record */ + /* by reducing the size of name[] */ }; + #define UMSDOS_HIDDEN 1 /* Never show this entry in directory search */ #define UMSDOS_HLINK 2 /* It is a (pseudo) hard link */ /* #Specification: EMD file / record size - Entry are 64 bytes wide in the EMD file. It allows for a 30 characters - name. If a name is longer, contiguous entries are allocated. So a - umsdos_dirent may span multiple records. -*/ + * Entry are 64 bytes wide in the EMD file. It allows for a 30 characters + * name. If a name is longer, contiguous entries are allocated. So a + * umsdos_dirent may span multiple records. + */ + #define UMSDOS_REC_SIZE 64 /* Translation between MSDOS name and UMSDOS name */ -struct umsdos_info{ - int msdos_reject; /* Tell if the file name is invalid for MSDOS */ - /* See umsdos_parse */ - struct umsdos_fake_info fake; - struct umsdos_dirent entry; - off_t f_pos; /* offset of the entry in the EMD file */ - /* or offset where the entry may be store */ - /* if it is a new entry */ - int recsize; /* Record size needed to store entry */ +struct umsdos_info { + int msdos_reject; /* Tell if the file name is invalid for MSDOS */ + /* See umsdos_parse */ + struct umsdos_fake_info fake; + struct umsdos_dirent entry; + off_t f_pos; /* offset of the entry in the EMD file + * or offset where the entry may be store + * if it is a new entry + */ + int recsize; /* Record size needed to store entry */ }; -/* Definitions for ioctl (number randomly chosen) */ -/* The next ioctl commands operate only on the DOS directory */ -/* The file umsdos_progs/umsdosio.c contain a string table */ -/* based on the order of those definition. Keep it in sync */ -#define UMSDOS_READDIR_DOS _IO(0x04,210) /* Do a readdir of the DOS directory */ -#define UMSDOS_UNLINK_DOS _IO(0x04,211) /* Erase in the DOS directory only */ -#define UMSDOS_RMDIR_DOS _IO(0x04,212) /* rmdir in the DOS directory only */ -#define UMSDOS_STAT_DOS _IO(0x04,213) /* Get info about a file */ +/* Definitions for ioctl (number randomly chosen) + * The next ioctl commands operate only on the DOS directory + * The file umsdos_progs/umsdosio.c contain a string table + * based on the order of those definition. Keep it in sync + */ +#define UMSDOS_READDIR_DOS _IO(0x04,210) /* Do a readdir of the DOS directory */ +#define UMSDOS_UNLINK_DOS _IO(0x04,211) /* Erase in the DOS directory only */ +#define UMSDOS_RMDIR_DOS _IO(0x04,212) /* rmdir in the DOS directory only */ +#define UMSDOS_STAT_DOS _IO(0x04,213) /* Get info about a file */ + /* The next ioctl commands operate only on the EMD file */ -#define UMSDOS_CREAT_EMD _IO(0x04,214) /* Create a file */ -#define UMSDOS_UNLINK_EMD _IO(0x04,215) /* unlink (rmdir) a file */ -#define UMSDOS_READDIR_EMD _IO(0x04,216) /* read the EMD file only. */ -#define UMSDOS_GETVERSION _IO(0x04,217) /* Get the release number of UMSDOS */ -#define UMSDOS_INIT_EMD _IO(0x04,218) /* Create the EMD file if not there */ -#define UMSDOS_DOS_SETUP _IO(0x04,219) /* Set the defaults of the MsDOS driver */ - -#define UMSDOS_RENAME_DOS _IO(0x04,220) /* rename a file/directory in the DOS */ - /* directory only */ -struct umsdos_ioctl{ - struct dirent dos_dirent; - struct umsdos_dirent umsdos_dirent; - /* The following structure is used to exchange some data */ - /* with utilities (umsdos_progs/util/umsdosio.c). The first */ - /* releases were using struct stat from "sys/stat.h". This was */ - /* causing some problem for cross compilation of the kernel */ - /* Since I am not really using the structure stat, but only some field */ - /* of it, I have decided to replicate the structure here */ - /* for compatibility with the binaries out there */ - /* FIXME PTW 1998, this has probably changed */ - struct { - dev_t st_dev; - unsigned short __pad1; - ino_t st_ino; - umode_t st_mode; - nlink_t st_nlink; - uid_t st_uid; - gid_t st_gid; - dev_t st_rdev; - unsigned short __pad2; - off_t st_size; - unsigned long st_blksize; - unsigned long st_blocks; - time_t st_atime; - unsigned long __unused1; - time_t st_mtime; - unsigned long __unused2; - time_t st_ctime; - unsigned long __unused3; - unsigned long __unused4; - unsigned long __unused5; - }stat; - char version,release; +#define UMSDOS_CREAT_EMD _IO(0x04,214) /* Create a file */ +#define UMSDOS_UNLINK_EMD _IO(0x04,215) /* unlink (rmdir) a file */ +#define UMSDOS_READDIR_EMD _IO(0x04,216) /* read the EMD file only. */ +#define UMSDOS_GETVERSION _IO(0x04,217) /* Get the release number of UMSDOS */ +#define UMSDOS_INIT_EMD _IO(0x04,218) /* Create the EMD file if not there */ +#define UMSDOS_DOS_SETUP _IO(0x04,219) /* Set the defaults of the MsDOS driver */ + +#define UMSDOS_RENAME_DOS _IO(0x04,220) /* rename a file/directory in the DOS + * directory only */ +struct umsdos_ioctl { + struct dirent dos_dirent; + struct umsdos_dirent umsdos_dirent; + /* The following structure is used to exchange some data + * with utilities (umsdos_progs/util/umsdosio.c). The first + * releases were using struct stat from "sys/stat.h". This was + * causing some problem for cross compilation of the kernel + * Since I am not really using the structure stat, but only some field + * of it, I have decided to replicate the structure here + * for compatibility with the binaries out there + * FIXME PTW 1998, this has probably changed + */ + + struct { + dev_t st_dev; + unsigned short __pad1; + ino_t st_ino; + umode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + unsigned short __pad2; + off_t st_size; + unsigned long st_blksize; + unsigned long st_blocks; + time_t st_atime; + unsigned long __unused1; + time_t st_mtime; + unsigned long __unused2; + time_t st_ctime; + unsigned long __unused3; + unsigned long __unused4; + unsigned long __unused5; + } stat; + char version, release; }; /* Different macros to access struct umsdos_dirent */ @@ -138,15 +145,15 @@ struct umsdos_ioctl{ #endif extern struct inode_operations umsdos_dir_inode_operations; -extern struct file_operations umsdos_file_operations; +extern struct file_operations umsdos_file_operations; extern struct inode_operations umsdos_file_inode_operations; extern struct inode_operations umsdos_file_inode_operations_no_bmap; extern struct inode_operations umsdos_file_inode_operations_readpage; extern struct inode_operations umsdos_symlink_inode_operations; -extern int init_umsdos_fs(void); +extern int init_umsdos_fs (void); #include <linux/umsdos_fs.p> -#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */ #endif |