patch-pre2.0.6 linux/include/linux/amigaffs.h

Next file: linux/include/linux/aztcd.h
Previous file: linux/include/linux/affs_hardblocks.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file pre2.0.5/linux/include/linux/amigaffs.h linux/include/linux/amigaffs.h
@@ -8,7 +8,7 @@
 
 #define GET_END_PTR(st,p,sz)		 ((st *)((char *)(p)+((sz)-sizeof(st))))
 #define AFFS_GET_HASHENTRY(data,hashkey) htonl(((struct dir_front *)data)->hashtable[hashkey])
-#define AFFS_BLOCK(data,ino,blk)	 ((struct file_front *)data)->blocks[AFFS_I2HSIZE(ino)-1-blk]
+#define AFFS_BLOCK(data,ino,blk)	 ((struct file_front *)data)->blocks[AFFS_I2HSIZE(ino)-1-(blk)]
 
 #define FILE_END(p,i)	GET_END_PTR(struct file_end,p,AFFS_I2BSIZE(i))
 #define ROOT_END(p,i)	GET_END_PTR(struct root_end,p,AFFS_I2BSIZE(i))
@@ -29,8 +29,6 @@
 #error Endianness must be known for affs to work.
 #endif
 
-/* The following constants will be checked against the values read native */
-
 #define FS_OFS		0x444F5300
 #define FS_FFS		0x444F5301
 #define FS_INTLOFS	0x444F5302
@@ -45,13 +43,6 @@
 #define MUFS_DCOFS	0x6d754604   /* 'muF\4' */
 #define MUFS_DCFFS	0x6d754605   /* 'muF\5' */
 
-struct DateStamp
-{
-  __u32 ds_Days;
-  __u32 ds_Minute;
-  __u32 ds_Tick;
-};
-
 #define T_SHORT		2
 #define T_LIST		16
 #define T_DATA		8
@@ -66,119 +57,130 @@
 struct root_front
 {
   __s32 primary_type;
-  __u32 spare1[2];
-  __u32 hash_size;
-  __u32 spare2;
+  __s32 spare1[2];
+  __s32 hash_size;
+  __s32 spare2;
   __u32 checksum;
-  __u32 hashtable[0];
+  __s32 hashtable[0];
 };
 
 struct root_end
 {
   __s32 bm_flag;
-  __u32 bm_keys[25];
-  __u32 bm_extend;
+  __s32 bm_keys[25];
+  __s32 bm_extend;
   struct DateStamp dir_altered;
   __u8 disk_name[40];
   struct DateStamp disk_altered;
   struct DateStamp disk_made;
-  __u32 spare1[3];
+  __s32 spare1[3];
   __s32 secondary_type;
 };
 
 struct dir_front
 {
   __s32 primary_type;
-  __u32 own_key;
-  __u32 spare1[3];
+  __s32 own_key;
+  __s32 spare1[3];
   __u32 checksum;
-  __u32 hashtable[0];
+  __s32 hashtable[0];
 };
 
 struct dir_end
 {
-  __u32 spare1;
-  __u16 owner_uid;
-  __u16 owner_gid;
+  __s32 spare1;
+  __s16 owner_uid;
+  __s16 owner_gid;
   __u32 protect;
-  __u32 spare2;
+  __s32 spare2;
   __u8 comment[92];
   struct DateStamp created;
   __u8 dir_name[32];
-  __u32 spare3[2];
-  __u32 link_chain;
-  __u32 spare4[5];
-  __u32 hash_chain;
-  __u32 parent;
-  __u32 spare5;
+  __s32 spare3[2];
+  __s32 link_chain;
+  __s32 spare4[5];
+  __s32 hash_chain;
+  __s32 parent;
+  __s32 spare5;
   __s32 secondary_type;
 };
 
 struct file_front
 {
   __s32 primary_type;
-  __u32 own_key;
-  __u32 block_count;
-  __u32 unknown1;
-  __u32 first_data;
+  __s32 own_key;
+  __s32 block_count;
+  __s32 unknown1;
+  __s32 first_data;
   __u32 checksum;
-  __u32 blocks[0];
+  __s32 blocks[0];
 };
 
 struct file_end
 {
-  __u32 spare1;
-  __u16 owner_uid;
-  __u16 owner_gid;
+  __s32 spare1;
+  __s16 owner_uid;
+  __s16 owner_gid;
   __u32 protect;
-  __u32 byte_size;
+  __s32 byte_size;
   __u8 comment[92];
   struct DateStamp created;
   __u8 file_name[32];
-  __u32 spare2;
-  __u32 original;	/* not really in file_end */
-  __u32 link_chain;
-  __u32 spare3[5];
-  __u32 hash_chain;
-  __u32 parent;
-  __u32 extension;
+  __s32 spare2;
+  __s32 original;	/* not really in file_end */
+  __s32 link_chain;
+  __s32 spare3[5];
+  __s32 hash_chain;
+  __s32 parent;
+  __s32 extension;
   __s32 secondary_type;
 };
 
 struct hlink_front
 {
   __s32 primary_type;
-  __u32 own_key;
-  __u32 spare1[3];
+  __s32 own_key;
+  __s32 spare1[3];
   __u32 checksum;
 };
 
 struct hlink_end
 {
-  __u32 spare1;
-  __u16 owner_uid;
-  __u16 owner_gid;
+  __s32 spare1;
+  __s16 owner_uid;
+  __s16 owner_gid;
   __u32 protect;
   __u8 comment[92];
   struct DateStamp created;
   __u8 link_name[32];
-  __u32 spare2;
-  __u32 original;
-  __u32 link_chain;
-  __u32 spare3[5];
-  __u32 hash_chain;
-  __u32 parent;
-  __u32 spare4;
+  __s32 spare2;
+  __s32 original;
+  __s32 link_chain;
+  __s32 spare3[5];
+  __s32 hash_chain;
+  __s32 parent;
+  __s32 spare4;
   __s32 secondary_type;
 };
 
 struct slink_front
 {
   __s32 primary_type;
-  __u32 own_key;
-  __u32 spare1[3];
-  __u32 checksum;
+  __s32 own_key;
+  __s32 spare1[3];
+  __s32 checksum;
   __u8	symname[288];	/* depends on block size */
+};
+
+struct data_front
+{
+  __s32 primary_type;
+  __s32 header_key;
+  __s32 sequence_number;
+  __s32 data_size;
+  __s32 next_data;
+  __s32 checksum;
+  __u8 data[488];	/* depends on block size */
 };
 
 /* Permission bits */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this