diff options
author | dons <unknown> | 2003-09-15 20:59:07 +0000 |
---|---|---|
committer | dons <unknown> | 2003-09-15 20:59:07 +0000 |
commit | 9a9842f47af4488ce71a296026be1e3f3c739e6a (patch) | |
tree | 1278b9c54dd768ca3f48fa971684c74373ebeb8c | |
parent | 70e90e1b2ea10a725db32e9d333aa29b03646bb4 (diff) |
[project @ 2003-09-15 20:59:07 by dons]
#ifdef's for the _PC_SYNC_IO, _PC_ASYNC_IO, _PC_FILESIZEBITS,
_PC_SYMLINK_MAX.
These 4 symbols are not universal: FreeBSD and Linux and the only
OS's that appear to have them at the moment.
-rw-r--r-- | System/Posix/Files.hsc | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/System/Posix/Files.hsc b/System/Posix/Files.hsc index 36127d9..c66b9a9 100644 --- a/System/Posix/Files.hsc +++ b/System/Posix/Files.hsc @@ -449,20 +449,45 @@ data PathVar pathVarConst :: PathVar -> CInt pathVarConst v = case v of - FileSizeBits -> (#const _PC_FILESIZEBITS) LinkLimit -> (#const _PC_LINK_MAX) InputLineLimit -> (#const _PC_MAX_CANON) InputQueueLimit -> (#const _PC_MAX_INPUT) FileNameLimit -> (#const _PC_NAME_MAX) PathNameLimit -> (#const _PC_PATH_MAX) PipeBufferLimit -> (#const _PC_PIPE_BUF) - SymbolicLinkLimit -> (#const _PC_SYMLINK_MAX) SetOwnerAndGroupIsRestricted -> (#const _PC_CHOWN_RESTRICTED) FileNamesAreNotTruncated -> (#const _PC_NO_TRUNC) VDisableChar -> (#const _PC_VDISABLE) - AsyncIOAvailable -> (#const _PC_ASYNC_IO) - PrioIOAvailable -> (#const _PC_PRIO_IO) - SyncIOAvailable -> (#const _PC_SYNC_IO) + +#ifdef _PC_SYNC_IO + SyncIOAvailable -> (#const _PC_SYNC_IO) +#else + SyncIOAvailable -> error "_PC_SYNC_IO not available" +#endif + +#ifdef _PC_ASYNC_IO + AsyncIOAvailable -> (#const _PC_ASYNC_IO) +#else + AsyncIOAvailable -> error "_PC_ASYNC_IO not available" +#endif + +#ifdef _PC_PRIO_IO + PrioIOAvailable -> (#const _PC_PRIO_IO) +#else + PrioIOAvailable -> error "_PC_PRIO_IO not available" +#endif + +#if _PC_FILESIZEBITS + FileSizeBits -> (#const _PC_FILESIZEBITS) +#else + FileSizeBits -> error "_PC_FILESIZEBITS not available" +#endif + +#if _PC_SYMLINK_MAX + SymbolicLinkLimit -> (#const _PC_SYMLINK_MAX) +#else + SymbolicLinkLimit -> error "_PC_SYMLINK_MAX not available" +#endif getPathVar :: FilePath -> PathVar -> IO Limit getPathVar name v = do |