for those interested in running netatalk with the linux hfs module,
there are two fixes that are appropriate:
      1) things should work better with my pre-asun2.1.4 stuff as i
         already use 1024 byte buffers. that's my bad for changing it
         simultaneously in both the hfs and the netatalk source so
         that i never saw a problem.

      2) apply the following patch to the linux kernel and re-compile:

--- linux/fs/hfs/file_hdr.c.save        Tue Nov 30 23:03:02 1999
+++ linux/fs/hfs/file_hdr.c     Tue Nov 30 23:01:34 1999
@@ -164,10 +164,10 @@
        __constant_htonl(HFS_HDR_VERSION_1),    /* version */
        5,                                      /* entries */
        {                                       /* descr[] */
-               {HFS_HDR_FNAME, offsetof(struct hfs_dbl_hdr, real_name),   ~0},
-               {HFS_HDR_COMNT, offsetof(struct hfs_dbl_hdr, comment),      0},
-               {HFS_HDR_OLDI,  offsetof(struct hfs_dbl_hdr, create_time), 16},
-               {HFS_HDR_FINFO, offsetof(struct hfs_dbl_hdr, finderinfo),  32},
+               {HFS_HDR_FNAME, offsetof(struct hfs_nat_hdr, real_name),   ~0},
+               {HFS_HDR_COMNT, offsetof(struct hfs_nat_hdr, comment),      0},
+               {HFS_HDR_OLDI,  offsetof(struct hfs_nat_hdr, old_info),    16},
+               {HFS_HDR_FINFO, offsetof(struct hfs_nat_hdr, finderinfo),  32},
                {HFS_HDR_RSRC,  HFS_NAT_HDR_LEN,                           ~0},
        },
        {                                       /* order[] */
--- linux/include/linux/hfs_fs.h.save   Tue Nov 30 22:31:52 1999
+++ linux/include/linux/hfs_fs.h        Tue Nov 30 22:55:31 1999
@@ -140,6 +140,19 @@
                        *order[HFS_HDR_MAX];    /* 'descr' ordered by offset */
 };
 
+/* header layout for netatalk's v1 appledouble file format */
+struct hfs_nat_hdr {
+       hfs_lword_t     magic;
+       hfs_lword_t     version;
+       hfs_byte_t      homefs[16];
+       hfs_word_t      entries;
+       hfs_byte_t      descrs[12*5];
+       hfs_byte_t      real_name[255]; /* id=3 */
+       hfs_byte_t      comment[200];   /* id=4 XXX: not yet implemented */
+       hfs_byte_t      old_info[16];   /* id=7 */
+       hfs_u8          finderinfo[32]; /* id=9 */
+};
+
 /* 
  * Default header layout for Netatalk and AppleDouble
  */
@@ -161,7 +174,6 @@
        hfs_u8          short_name[12]; /* id=13 */
        hfs_u8          prodosi[8];     /* id=11 */
 };
-
 
 /* finder metadata for CAP */
 struct hfs_cap_info {

Reply via email to