From: <bar...@us...> - 2004-01-26 19:44:01
|
Update of /cvsroot/freedos/kernel/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3317 Modified Files: ioctl.c Log Message: Save ~100 bytes by replacing s->sft_flags with flags, s->sft_dev->dh_attr with attr and simplifying the if() statement a bit Index: ioctl.c =================================================================== RCS file: /cvsroot/freedos/kernel/kernel/ioctl.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- ioctl.c 26 Jan 2004 19:40:13 -0000 1.23 +++ ioctl.c 26 Jan 2004 19:43:06 -0000 1.24 @@ -85,13 +85,16 @@ return DE_INVLDHNDL; switch (r->AL) - { + { + unsigned attr = s->sft_dev->dh_attr; + unsigned flags = s->sft_flags; + case 0x00: /* Get the flags from the SFT */ - if (s->sft_flags & SFT_FDEVICE) - r->AX = (s->sft_dev->dh_attr & 0xff00) | s->sft_flags_lo; + if (flags & SFT_FDEVICE) + r->AX = (attr & 0xff00) | (flags & 0xff); else - r->AX = s->sft_flags; + r->AX = flags; /* Undocumented result, Ax = Dx seen using Pcwatch */ r->DX = r->AX; break; @@ -99,7 +102,7 @@ case 0x01: /* sft_flags is a file, return an error because you */ /* can't set the status of a file. */ - if (!(s->sft_flags & SFT_FDEVICE)) + if (!(flags & SFT_FDEVICE)) return DE_INVLDFUNC; /* Set it to what we got in the DL register from the */ @@ -116,7 +119,7 @@ goto IoCharCommon; case 0x06: - if (s->sft_flags & SFT_FDEVICE) + if (flags & SFT_FDEVICE) { nMode = C_ISTAT; goto IoCharCommon; @@ -125,7 +128,7 @@ break; case 0x07: - if (s->sft_flags & SFT_FDEVICE) + if (flags & SFT_FDEVICE) { nMode = C_OSTAT; goto IoCharCommon; @@ -134,7 +137,7 @@ break; case 0x0a: - r->DX = s->sft_flags; + r->DX = flags; r->AX = 0; break; @@ -145,12 +148,11 @@ case 0x10: nMode = C_IOCTLQRY; IoCharCommon: - if ((s->sft_flags & SFT_FDEVICE) && - ( ((r->AL == 0x02) && (s->sft_dev->dh_attr & SFT_FIOCTL)) - || ((r->AL == 0x03) && (s->sft_dev->dh_attr & SFT_FIOCTL)) + if ((flags & SFT_FDEVICE) && + ( ((r->AL == 0x02 || r->AL == 0x03) && (attr & ATTR_IOCTL)) || r->AL == 0x06 || r->AL == 0x07 - || ((r->AL == 0x10) && (s->sft_dev->dh_attr & ATTR_QRYIOCTL)) - || ((r->AL == 0x0c) && (s->sft_dev->dh_attr & ATTR_GENIOCTL)))) + || ((r->AL == 0x10) && (attr & ATTR_QRYIOCTL)) + || ((r->AL == 0x0c) && (attr & ATTR_GENIOCTL)))) { CharReqHdr.r_unit = 0; CharReqHdr.r_command = nMode; |