From 9aa77bef50fcbaf2d15593143a88e3802a3d94bd Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sat, 27 Mar 2004 00:23:06 +0000 Subject: [PATCH] Get rid of SFT_M* mode values. O_* values are sufficient. git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@830 6ac86273-5f31-0410-b378-82cca8765d1b --- hdr/file.h | 20 ++++++++++++++++---- hdr/sft.h | 14 -------------- kernel/dosfns.c | 8 ++++---- kernel/fcbfns.c | 4 ++-- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/hdr/file.h b/hdr/file.h index 2a33a42..7b6c2f2 100644 --- a/hdr/file.h +++ b/hdr/file.h @@ -47,13 +47,25 @@ static BYTE *file_hRcsId = #define STDAUX 3 #define STDPRN 4 -#define O_RDONLY SFT_MREAD -#define O_WRONLY SFT_MWRITE -#define O_RDWR SFT_MRDWR -#define O_ACCMODE 3 +/* mode bits */ +#define O_VALIDMASK 0xfff3 /* valid open mask */ + +#define O_RDONLY 0x0000 +#define O_WRONLY 0x0001 +#define O_RDWR 0x0002 +#define O_ACCMODE 0x0003 /* bits 2, 3 reserved */ + /* bits 4, 5, 6 sharing modes */ +#define O_SHAREMASK 0x0070 /* mask to isolate shared bits */ + +#define O_DENYALL 0x0010 /* " " */ +#define O_DENYWRITE 0x0020 /* " " */ +#define O_DENYREAD 0x0030 /* " " */ +#define O_DENYNONE 0x0040 /* sharing bits */ +#define O_NETFCB 0x0070 /* networked fcb */ + #define O_NOINHERIT 0x0080 #define O_OPEN 0x0100 /* not */ #define O_TRUNC 0x0200 /* both */ diff --git a/hdr/sft.h b/hdr/sft.h index 49bb846..6a61a60 100644 --- a/hdr/sft.h +++ b/hdr/sft.h @@ -94,20 +94,6 @@ typedef struct sfttbl { /* defines for sft use */ #define SFT_MASK 0x0060 /* splits device data */ -/* mode bits */ -#define SFT_MFCB 0x8000 /* entry is for fcb */ -#define SFT_MDENYNONE 0x0040 /* sharing bits */ -#define SFT_MDENYREAD 0x0030 /* " " */ -#define SFT_MDENYWRITE 0x0020 /* " " */ -#define SFT_MEXCLUSIVE 0x0010 /* " " */ -#define SFT_NOINHERIT 0x0080 /* inhibit inherting of file */ -#define SFT_NETFCB 0x0070 /* networked fcb */ -#define SFT_MSHAREMASK 0x0070 /* mask to isolate shared bits */ -#define SFT_MRDWR 0x0002 /* read/write bit */ -#define SFT_MWRITE 0x0001 /* write bit */ -#define SFT_MREAD 0x0000 /* ~ write bit */ -#define SFT_OMASK 0xfff3 /* valid open mask */ - /* flag bits */ /* the following bit is for redirection */ diff --git a/kernel/dosfns.c b/kernel/dosfns.c index 564e003..bbbc6dc 100644 --- a/kernel/dosfns.c +++ b/kernel/dosfns.c @@ -211,8 +211,8 @@ long DosRWSft(int sft_idx, size_t n, void FAR * bp, int mode) return DE_INVLDHNDL; } /* If for read and write-only or for write and read-only then exit */ - if((mode == XFR_READ && (s->sft_mode & SFT_MWRITE)) || - (mode == XFR_WRITE && !(s->sft_mode & (SFT_MWRITE | SFT_MRDWR)))) + if((mode == XFR_READ && (s->sft_mode & O_WRONLY)) || + (mode == XFR_WRITE && (s->sft_mode & O_ACCMODE) == O_RDONLY)) { return DE_ACCESS; } @@ -337,7 +337,7 @@ COUNT SftSeek(int sft_idx, LONG new_pos, COUNT mode) * Lredir via mfs.c from DosEMU works when writing appended files. * Mfs.c looks for these mode bits set, so here is my best guess.;^) */ - if ((s->sft_mode & SFT_MDENYREAD) || (s->sft_mode & SFT_MDENYNONE)) + if ((s->sft_mode & O_DENYREAD) || (s->sft_mode & O_DENYNONE)) { s->sft_posit = remote_lseek(s, new_pos); return SUCCESS; @@ -644,7 +644,7 @@ long DosOpen(char FAR * fname, unsigned mode, unsigned attrib) unsigned hndl; /* test if mode is in range */ - if ((mode & ~SFT_OMASK) != 0) + if ((mode & ~O_VALIDMASK) != 0) return DE_INVLDACC; /* get a free handle */ diff --git a/kernel/fcbfns.c b/kernel/fcbfns.c index 8f67bcc..3fa5fe7 100644 --- a/kernel/fcbfns.c +++ b/kernel/fcbfns.c @@ -412,7 +412,7 @@ UBYTE FcbOpen(xfcb FAR * lpXfcb, unsigned flags) } sftp = idx_to_sft(sft_idx); - sftp->sft_mode |= SFT_MFCB; + sftp->sft_mode |= O_FCB; lpFcb->fcb_sftno = sft_idx; lpFcb->fcb_curec = 0; @@ -631,7 +631,7 @@ VOID FcbCloseAll() sft FAR *sftp; for (idx = 0; (sftp = idx_to_sft(idx)) != (sft FAR *) - 1; idx++) - if ((sftp->sft_mode & SFT_MFCB) && sftp->sft_psp == cu_psp) + if ((sftp->sft_mode & O_FCB) && sftp->sft_psp == cu_psp) DosCloseSft(idx, FALSE); }