summaryrefslogtreecommitdiffstats
path: root/include/linux/adfs_fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/adfs_fs.h')
-rw-r--r--include/linux/adfs_fs.h163
1 files changed, 27 insertions, 136 deletions
diff --git a/include/linux/adfs_fs.h b/include/linux/adfs_fs.h
index f6ed2d3b1..ae1e69173 100644
--- a/include/linux/adfs_fs.h
+++ b/include/linux/adfs_fs.h
@@ -2,113 +2,43 @@
#define _ADFS_FS_H
#include <linux/types.h>
-/*
- * Structures of data on the disk
- */
/*
* Disc Record at disc address 0xc00
*/
struct adfs_discrecord {
- unsigned char log2secsize;
- unsigned char secspertrack;
- unsigned char heads;
- unsigned char density;
- unsigned char idlen;
- unsigned char log2bpmb;
- unsigned char skew;
- unsigned char bootoption;
- unsigned char lowsector;
- unsigned char nzones;
- unsigned short zone_spare;
- unsigned long root;
- unsigned long disc_size;
- unsigned short disc_id;
- unsigned char disc_name[10];
- unsigned long disc_type;
- unsigned long disc_size_high;
- unsigned char log2sharesize:4;
- unsigned char unused:4;
- unsigned char big_flag:1;
+ __u8 log2secsize;
+ __u8 secspertrack;
+ __u8 heads;
+ __u8 density;
+ __u8 idlen;
+ __u8 log2bpmb;
+ __u8 skew;
+ __u8 bootoption;
+ __u8 lowsector;
+ __u8 nzones;
+ __u16 zone_spare;
+ __u32 root;
+ __u32 disc_size;
+ __u16 disc_id;
+ __u8 disc_name[10];
+ __u32 disc_type;
+ __u32 disc_size_high;
+ __u8 log2sharesize:4;
+ __u8 unused40:4;
+ __u8 big_flag:1;
+ __u8 unused41:1;
+ __u8 nzones_high;
+ __u32 format_version;
+ __u32 root_size;
+ __u8 unused52[60 - 52];
};
#define ADFS_DISCRECORD (0xc00)
#define ADFS_DR_OFFSET (0x1c0)
#define ADFS_DR_SIZE 60
+#define ADFS_DR_SIZE_BITS (ADFS_DR_SIZE << 3)
#define ADFS_SUPER_MAGIC 0xadf5
-#define ADFS_FREE_FRAG 0
-#define ADFS_BAD_FRAG 1
-#define ADFS_ROOT_FRAG 2
-
-/*
- * Directory header
- */
-struct adfs_dirheader {
- unsigned char startmasseq;
- unsigned char startname[4];
-};
-
-#define ADFS_NEWDIR_SIZE 2048
-#define ADFS_OLDDIR_SIZE 1024
-#define ADFS_NUM_DIR_ENTRIES 77
-
-/*
- * Directory entries
- */
-struct adfs_direntry {
- char dirobname[10];
-#define ADFS_NAME_LEN 10
- __u8 dirload[4];
- __u8 direxec[4];
- __u8 dirlen[4];
- __u8 dirinddiscadd[3];
- __u8 newdiratts;
-#define ADFS_NDA_OWNER_READ (1 << 0)
-#define ADFS_NDA_OWNER_WRITE (1 << 1)
-#define ADFS_NDA_LOCKED (1 << 2)
-#define ADFS_NDA_DIRECTORY (1 << 3)
-#define ADFS_NDA_EXECUTE (1 << 4)
-#define ADFS_NDA_PUBLIC_READ (1 << 5)
-#define ADFS_NDA_PUBLIC_WRITE (1 << 6)
-};
-
-#define ADFS_MAX_NAME_LEN 255
-struct adfs_idir_entry {
- __u32 inode_no; /* Address */
- __u32 file_id; /* file id */
- __u32 name_len; /* name length */
- __u32 size; /* size */
- __u32 mtime; /* modification time */
- __u32 filetype; /* RiscOS file type */
- __u8 mode; /* internal mode */
- char name[ADFS_MAX_NAME_LEN]; /* file name */
-};
-
-/*
- * Directory tail
- */
-union adfs_dirtail {
- struct {
- unsigned char dirlastmask;
- char dirname[10];
- unsigned char dirparent[3];
- char dirtitle[19];
- unsigned char reserved[14];
- unsigned char endmasseq;
- unsigned char endname[4];
- unsigned char dircheckbyte;
- } old;
- struct {
- unsigned char dirlastmask;
- unsigned char reserved[2];
- unsigned char dirparent[3];
- char dirtitle[19];
- char dirname[10];
- unsigned char endmasseq;
- unsigned char endname[4];
- unsigned char dircheckbyte;
- } new;
-};
#ifdef __KERNEL__
/*
@@ -129,47 +59,8 @@ extern inline int adfs_checkbblk(unsigned char *ptr)
return (result & 0xff) != ptr[511];
}
-/* dir.c */
-extern unsigned int adfs_val (unsigned char *p, int len);
-extern int adfs_dir_read_parent (struct inode *inode, struct buffer_head **bhp);
-extern int adfs_dir_read (struct inode *inode, struct buffer_head **bhp);
-extern int adfs_dir_check (struct inode *inode, struct buffer_head **bhp,
- int buffers, union adfs_dirtail *dtp);
-extern void adfs_dir_free (struct buffer_head **bhp, int buffers);
-extern int adfs_dir_get (struct super_block *sb, struct buffer_head **bhp,
- int buffers, int pos, unsigned long parent_object_id,
- struct adfs_idir_entry *ide);
-extern int adfs_dir_find_entry (struct super_block *sb, struct buffer_head **bhp,
- int buffers, unsigned int index,
- struct adfs_idir_entry *ide);
-
-/* inode.c */
-extern int adfs_inode_validate (struct inode *inode);
-extern unsigned long adfs_inode_generate (unsigned long parent_id, int diridx);
-extern unsigned long adfs_inode_objid (struct inode *inode);
-extern unsigned int adfs_parent_bmap (struct inode *inode, int block);
-extern int adfs_bmap (struct inode *inode, int block);
-extern void adfs_read_inode (struct inode *inode);
-
-/* map.c */
-extern int adfs_map_lookup (struct super_block *sb, int frag_id, int offset);
-
-/* namei.c */
-extern struct dentry *adfs_lookup (struct inode *dir, struct dentry *dentry);
+#endif
-/* super.c */
extern int init_adfs_fs (void);
-extern void adfs_error (struct super_block *, const char *, const char *, ...);
-
-/*
- * Inodes and file operations
- */
-
-/* dir.c */
-extern struct inode_operations adfs_dir_inode_operations;
-
-/* file.c */
-extern struct inode_operations adfs_file_inode_operations;
-#endif
#endif