* devices.h: Switch FH_ZERO and FH_PORT as on Linux. Add FH_FULL.
* devices.in: Add /dev/full. * devices.cc: Regenerate. * dtable.cc (build_fh_pc): Add FH_FULL. * fhandler.cc (fhandler_base::fstat): Set FH_FULL permission bits correctly. * fhandler_zero.cc (fhandler_dev_zero::write): Set errno to ENOSPC and return -1 if device is FH_FULL.
This commit is contained in:
parent
4add0a4e2f
commit
e5ef74dfb2
|
@ -1,3 +1,14 @@
|
||||||
|
2005-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* devices.h: Switch FH_ZERO and FH_PORT as on Linux. Add FH_FULL.
|
||||||
|
* devices.in: Add /dev/full.
|
||||||
|
* devices.cc: Regenerate.
|
||||||
|
* dtable.cc (build_fh_pc): Add FH_FULL.
|
||||||
|
* fhandler.cc (fhandler_base::fstat): Set FH_FULL permission bits
|
||||||
|
correctly.
|
||||||
|
* fhandler_zero.cc (fhandler_dev_zero::write): Set errno to ENOSPC
|
||||||
|
and return -1 if device is FH_FULL.
|
||||||
|
|
||||||
2005-02-22 Christopher Faylor <cgf@timesys.com>
|
2005-02-22 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
* fhandler_disk_file.cc (fhandler_cygdrive::closedir): Return 0 when
|
* fhandler_disk_file.cc (fhandler_cygdrive::closedir): Return 0 when
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -94,8 +94,9 @@ enum fh_devices
|
||||||
FH_MEM = FHDEV (1, 1),
|
FH_MEM = FHDEV (1, 1),
|
||||||
FH_KMEM = FHDEV (1, 2), /* not implemented yet */
|
FH_KMEM = FHDEV (1, 2), /* not implemented yet */
|
||||||
FH_NULL = FHDEV (1, 3),
|
FH_NULL = FHDEV (1, 3),
|
||||||
FH_ZERO = FHDEV (1, 4),
|
FH_PORT = FHDEV (1, 4),
|
||||||
FH_PORT = FHDEV (1, 5),
|
FH_ZERO = FHDEV (1, 5),
|
||||||
|
FH_FULL = FHDEV (1, 7),
|
||||||
FH_RANDOM = FHDEV (1, 8),
|
FH_RANDOM = FHDEV (1, 8),
|
||||||
FH_URANDOM = FHDEV (1, 9),
|
FH_URANDOM = FHDEV (1, 9),
|
||||||
FH_OSS_DSP = FHDEV (14, 3),
|
FH_OSS_DSP = FHDEV (14, 3),
|
||||||
|
|
|
@ -59,6 +59,7 @@ const device dev_bad_storage =
|
||||||
"/dev/conout", FH_CONOUT, "conout"
|
"/dev/conout", FH_CONOUT, "conout"
|
||||||
"/dev/null", FH_NULL, "nul"
|
"/dev/null", FH_NULL, "nul"
|
||||||
"/dev/zero", FH_ZERO, "\\dev\\zero"
|
"/dev/zero", FH_ZERO, "\\dev\\zero"
|
||||||
|
"/dev/full", FH_FULL, "\\dev\\full"
|
||||||
"/dev/random", FH_RANDOM, "\\dev\\random"
|
"/dev/random", FH_RANDOM, "\\dev\\random"
|
||||||
"/dev/urandom", FH_URANDOM, "\\dev\\urandom", urandom_dev
|
"/dev/urandom", FH_URANDOM, "\\dev\\urandom", urandom_dev
|
||||||
"/dev/mem", FH_MEM, "\\dev\\mem"
|
"/dev/mem", FH_MEM, "\\dev\\mem"
|
||||||
|
|
|
@ -428,6 +428,7 @@ build_fh_pc (path_conv& pc)
|
||||||
fh = cnew (fhandler_dev_null) ();
|
fh = cnew (fhandler_dev_null) ();
|
||||||
break;
|
break;
|
||||||
case FH_ZERO:
|
case FH_ZERO:
|
||||||
|
case FH_FULL:
|
||||||
fh = cnew (fhandler_dev_zero) ();
|
fh = cnew (fhandler_dev_zero) ();
|
||||||
break;
|
break;
|
||||||
case FH_RANDOM:
|
case FH_RANDOM:
|
||||||
|
|
|
@ -1211,6 +1211,9 @@ fhandler_base::fstat (struct __stat64 *buf)
|
||||||
case FH_PIPER:
|
case FH_PIPER:
|
||||||
buf->st_mode = S_IFIFO | STD_RBITS;
|
buf->st_mode = S_IFIFO | STD_RBITS;
|
||||||
break;
|
break;
|
||||||
|
case FH_FULL:
|
||||||
|
buf->st_mode = S_IFCHR | S_IRUSR | S_IWUSR | S_IWGRP | S_IWOTH;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
buf->st_mode = S_IFCHR | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
|
buf->st_mode = S_IFCHR | STD_RBITS | STD_WBITS | S_IWGRP | S_IWOTH;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -34,6 +34,11 @@ fhandler_dev_zero::open (int flags, mode_t)
|
||||||
int
|
int
|
||||||
fhandler_dev_zero::write (const void *, size_t len)
|
fhandler_dev_zero::write (const void *, size_t len)
|
||||||
{
|
{
|
||||||
|
if (get_device () == FH_FULL)
|
||||||
|
{
|
||||||
|
set_errno (ENOSPC);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue