mirror of https://github.com/FDOS/kernel.git
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
This commit is contained in:
parent
1fb4a30294
commit
9aa77bef50
20
hdr/file.h
20
hdr/file.h
|
@ -47,13 +47,25 @@ static BYTE *file_hRcsId =
|
||||||
#define STDAUX 3
|
#define STDAUX 3
|
||||||
#define STDPRN 4
|
#define STDPRN 4
|
||||||
|
|
||||||
#define O_RDONLY SFT_MREAD
|
/* mode bits */
|
||||||
#define O_WRONLY SFT_MWRITE
|
#define O_VALIDMASK 0xfff3 /* valid open mask */
|
||||||
#define O_RDWR SFT_MRDWR
|
|
||||||
#define O_ACCMODE 3
|
#define O_RDONLY 0x0000
|
||||||
|
#define O_WRONLY 0x0001
|
||||||
|
#define O_RDWR 0x0002
|
||||||
|
#define O_ACCMODE 0x0003
|
||||||
|
|
||||||
/* bits 2, 3 reserved */
|
/* bits 2, 3 reserved */
|
||||||
|
|
||||||
/* bits 4, 5, 6 sharing modes */
|
/* 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_NOINHERIT 0x0080
|
||||||
#define O_OPEN 0x0100 /* not */
|
#define O_OPEN 0x0100 /* not */
|
||||||
#define O_TRUNC 0x0200 /* both */
|
#define O_TRUNC 0x0200 /* both */
|
||||||
|
|
14
hdr/sft.h
14
hdr/sft.h
|
@ -94,20 +94,6 @@ typedef struct sfttbl {
|
||||||
/* defines for sft use */
|
/* defines for sft use */
|
||||||
#define SFT_MASK 0x0060 /* splits device data */
|
#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 */
|
/* flag bits */
|
||||||
|
|
||||||
/* the following bit is for redirection */
|
/* the following bit is for redirection */
|
||||||
|
|
|
@ -211,8 +211,8 @@ long DosRWSft(int sft_idx, size_t n, void FAR * bp, int mode)
|
||||||
return DE_INVLDHNDL;
|
return DE_INVLDHNDL;
|
||||||
}
|
}
|
||||||
/* If for read and write-only or for write and read-only then exit */
|
/* If for read and write-only or for write and read-only then exit */
|
||||||
if((mode == XFR_READ && (s->sft_mode & SFT_MWRITE)) ||
|
if((mode == XFR_READ && (s->sft_mode & O_WRONLY)) ||
|
||||||
(mode == XFR_WRITE && !(s->sft_mode & (SFT_MWRITE | SFT_MRDWR))))
|
(mode == XFR_WRITE && (s->sft_mode & O_ACCMODE) == O_RDONLY))
|
||||||
{
|
{
|
||||||
return DE_ACCESS;
|
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.
|
* 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.;^)
|
* 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);
|
s->sft_posit = remote_lseek(s, new_pos);
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
|
@ -644,7 +644,7 @@ long DosOpen(char FAR * fname, unsigned mode, unsigned attrib)
|
||||||
unsigned hndl;
|
unsigned hndl;
|
||||||
|
|
||||||
/* test if mode is in range */
|
/* test if mode is in range */
|
||||||
if ((mode & ~SFT_OMASK) != 0)
|
if ((mode & ~O_VALIDMASK) != 0)
|
||||||
return DE_INVLDACC;
|
return DE_INVLDACC;
|
||||||
|
|
||||||
/* get a free handle */
|
/* get a free handle */
|
||||||
|
|
|
@ -412,7 +412,7 @@ UBYTE FcbOpen(xfcb FAR * lpXfcb, unsigned flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
sftp = idx_to_sft(sft_idx);
|
sftp = idx_to_sft(sft_idx);
|
||||||
sftp->sft_mode |= SFT_MFCB;
|
sftp->sft_mode |= O_FCB;
|
||||||
|
|
||||||
lpFcb->fcb_sftno = sft_idx;
|
lpFcb->fcb_sftno = sft_idx;
|
||||||
lpFcb->fcb_curec = 0;
|
lpFcb->fcb_curec = 0;
|
||||||
|
@ -631,7 +631,7 @@ VOID FcbCloseAll()
|
||||||
sft FAR *sftp;
|
sft FAR *sftp;
|
||||||
|
|
||||||
for (idx = 0; (sftp = idx_to_sft(idx)) != (sft FAR *) - 1; idx++)
|
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);
|
DosCloseSft(idx, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue