From 39e6570be99e058ccc9e369b3b39d018348b4085 Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Tue, 26 May 2009 13:09:20 +0000 Subject: [PATCH] Make the SFT DOS 4+ compatible and change fields to be unsigned. git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@1396 6ac86273-5f31-0410-b378-82cca8765d1b --- hdr/sft.h | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/hdr/sft.h b/hdr/sft.h index 6a61a60..1adc1be 100644 --- a/hdr/sft.h +++ b/hdr/sft.h @@ -56,24 +56,37 @@ typedef struct { struct dpb FAR *_sft_dcb; /* The device control block */ struct dhdr FAR *_sft_dev; /* device driver for char dev */ } sft_dcb_or_dev; - WORD sft_stclust; /* 0b - Starting cluster */ +#ifdef WITHFAT32 + UWORD sft_relclust_high; /* 0b - High part of relative cluster */ +#else + CLUSTER sft_stclust; /* 0b - Starting cluster */ +#endif time sft_time; /* 0d - File time */ date sft_date; /* 0f - File date */ - LONG sft_size; /* 11 - File size */ - LONG sft_posit; /* 15 - Current file position */ - WORD sft_relclust; /* 19 - File relative cluster */ - WORD sft_cuclust; /* 1b - File current cluster */ - WORD sft_dirdlust; /* 1d - Sector containing cluster */ - BYTE sft_diridx; /* 1f - directory index */ + ULONG sft_size; /* 11 - File size */ + ULONG sft_posit; /* 15 - Current file position */ + UWORD sft_relclust; /* 19 - File relative cluster (low part) */ + ULONG sft_dirsector; /* 1b - Sector containing cluster */ + UBYTE sft_diridx; /* 1f - directory index */ BYTE sft_name[11]; /* 20 - dir style file name */ +#ifdef WITHFAT32 + CLUSTER sft_stclust; /* 2b - Starting cluster */ +#else BYTE FAR *sft_bshare; /* 2b - backward link of file sharing sft */ +#endif WORD sft_mach; /* 2f - machine number - network apps */ WORD sft_psp; /* 31 - owner psp */ WORD sft_shroff; /* 33 - Sharing offset */ - WORD sft_status; /* 35 - this sft status */ + CLUSTER sft_cuclust; /* 35 - File current cluster */ +#ifdef WITHFAT32 + UWORD sft_pad; +#else BYTE FAR *sft_ifsptr; /* 37 - pointer to IFS driver for file, 0000000h if native DOS */ +#endif } sft; +#define sft_status sft_mach + /* SFT Table header definition */ typedef struct _sftheader { struct sfttbl FAR * /* link to next table in list */