| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800 |
- /*
- This source file is part of the Swift System open source project
- Copyright (c) 2020 - 2026 Apple Inc. and the Swift System project authors
- Licensed under Apache License v2.0 with Runtime Library Exception
- See https://swift.org/LICENSE.txt for license information
- */
- // For platform constants redefined in Swift. We define them here so that
- // they can be used anywhere without imports and without confusion to
- // unavailable local decls.
- #if SYSTEM_PACKAGE_DARWIN
- import Darwin
- #elseif os(Windows)
- import ucrt
- #elseif canImport(Glibc)
- import Glibc
- #elseif canImport(Musl)
- import Musl
- #elseif canImport(WASILibc)
- import WASILibc
- #elseif canImport(Android)
- import Android
- #else
- #error("Unsupported Platform")
- #endif
- import CSystem
- // MARK: errno
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _ERRNO_NOT_USED: CInt { 0 }
- #endif
- @_alwaysEmitIntoClient
- internal var _EPERM: CInt { EPERM }
- @_alwaysEmitIntoClient
- internal var _ENOENT: CInt { ENOENT }
- @_alwaysEmitIntoClient
- internal var _ESRCH: CInt { ESRCH }
- @_alwaysEmitIntoClient
- internal var _EINTR: CInt { EINTR }
- @_alwaysEmitIntoClient
- internal var _EIO: CInt { EIO }
- @_alwaysEmitIntoClient
- internal var _ENXIO: CInt { ENXIO }
- @_alwaysEmitIntoClient
- internal var _E2BIG: CInt { E2BIG }
- @_alwaysEmitIntoClient
- internal var _ENOEXEC: CInt { ENOEXEC }
- @_alwaysEmitIntoClient
- internal var _EBADF: CInt { EBADF }
- @_alwaysEmitIntoClient
- internal var _ECHILD: CInt { ECHILD }
- @_alwaysEmitIntoClient
- internal var _EDEADLK: CInt { EDEADLK }
- @_alwaysEmitIntoClient
- internal var _ENOMEM: CInt { ENOMEM }
- @_alwaysEmitIntoClient
- internal var _EACCES: CInt { EACCES }
- @_alwaysEmitIntoClient
- internal var _EFAULT: CInt { EFAULT }
- #if !os(Windows) && !os(WASI)
- @_alwaysEmitIntoClient
- internal var _ENOTBLK: CInt { ENOTBLK }
- #endif
- @_alwaysEmitIntoClient
- internal var _EBUSY: CInt { EBUSY }
- @_alwaysEmitIntoClient
- internal var _EEXIST: CInt { EEXIST }
- @_alwaysEmitIntoClient
- internal var _EXDEV: CInt { EXDEV }
- @_alwaysEmitIntoClient
- internal var _ENODEV: CInt { ENODEV }
- @_alwaysEmitIntoClient
- internal var _ENOTDIR: CInt { ENOTDIR }
- @_alwaysEmitIntoClient
- internal var _EISDIR: CInt { EISDIR }
- @_alwaysEmitIntoClient
- internal var _EINVAL: CInt { EINVAL }
- @_alwaysEmitIntoClient
- internal var _ENFILE: CInt { ENFILE }
- @_alwaysEmitIntoClient
- internal var _EMFILE: CInt { EMFILE }
- #if !os(Windows)
- @_alwaysEmitIntoClient
- internal var _ENOTTY: CInt { ENOTTY }
- @_alwaysEmitIntoClient
- internal var _ETXTBSY: CInt { ETXTBSY }
- #endif
- @_alwaysEmitIntoClient
- internal var _EFBIG: CInt { EFBIG }
- @_alwaysEmitIntoClient
- internal var _ENOSPC: CInt { ENOSPC }
- @_alwaysEmitIntoClient
- internal var _ESPIPE: CInt { ESPIPE }
- @_alwaysEmitIntoClient
- internal var _EROFS: CInt { EROFS }
- @_alwaysEmitIntoClient
- internal var _EMLINK: CInt { EMLINK }
- @_alwaysEmitIntoClient
- internal var _EPIPE: CInt { EPIPE }
- @_alwaysEmitIntoClient
- internal var _EDOM: CInt { EDOM }
- @_alwaysEmitIntoClient
- internal var _ERANGE: CInt { ERANGE }
- @_alwaysEmitIntoClient
- internal var _EAGAIN: CInt { EAGAIN }
- @_alwaysEmitIntoClient
- internal var _EWOULDBLOCK: CInt {
- #if os(WASI)
- _getConst_EWOULDBLOCK()
- #else
- EWOULDBLOCK
- #endif
- }
- @_alwaysEmitIntoClient
- internal var _EINPROGRESS: CInt { EINPROGRESS }
- @_alwaysEmitIntoClient
- internal var _EALREADY: CInt { EALREADY }
- @_alwaysEmitIntoClient
- internal var _ENOTSOCK: CInt { ENOTSOCK }
- @_alwaysEmitIntoClient
- internal var _EDESTADDRREQ: CInt { EDESTADDRREQ }
- @_alwaysEmitIntoClient
- internal var _EMSGSIZE: CInt { EMSGSIZE }
- @_alwaysEmitIntoClient
- internal var _EPROTOTYPE: CInt { EPROTOTYPE }
- @_alwaysEmitIntoClient
- internal var _ENOPROTOOPT: CInt { ENOPROTOOPT }
- @_alwaysEmitIntoClient
- internal var _EPROTONOSUPPORT: CInt { EPROTONOSUPPORT }
- #if !os(WASI)
- @_alwaysEmitIntoClient
- internal var _ESOCKTNOSUPPORT: CInt {
- #if os(Windows)
- return WSAESOCKTNOSUPPORT
- #else
- return ESOCKTNOSUPPORT
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _ENOTSUP: CInt {
- #if os(Windows)
- return WSAEOPNOTSUPP
- #else
- return ENOTSUP
- #endif
- }
- #if !os(WASI)
- @_alwaysEmitIntoClient
- internal var _EPFNOSUPPORT: CInt {
- #if os(Windows)
- return WSAEPFNOSUPPORT
- #else
- return EPFNOSUPPORT
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _EAFNOSUPPORT: CInt { EAFNOSUPPORT }
- @_alwaysEmitIntoClient
- internal var _EADDRINUSE: CInt { EADDRINUSE }
- @_alwaysEmitIntoClient
- internal var _EADDRNOTAVAIL: CInt { EADDRNOTAVAIL }
- @_alwaysEmitIntoClient
- internal var _ENETDOWN: CInt { ENETDOWN }
- @_alwaysEmitIntoClient
- internal var _ENETUNREACH: CInt { ENETUNREACH }
- @_alwaysEmitIntoClient
- internal var _ENETRESET: CInt { ENETRESET }
- @_alwaysEmitIntoClient
- internal var _ECONNABORTED: CInt { ECONNABORTED }
- @_alwaysEmitIntoClient
- internal var _ECONNRESET: CInt { ECONNRESET }
- @_alwaysEmitIntoClient
- internal var _ENOBUFS: CInt { ENOBUFS }
- @_alwaysEmitIntoClient
- internal var _EISCONN: CInt { EISCONN }
- @_alwaysEmitIntoClient
- internal var _ENOTCONN: CInt { ENOTCONN }
- #if !os(WASI)
- @_alwaysEmitIntoClient
- internal var _ESHUTDOWN: CInt {
- #if os(Windows)
- return WSAESHUTDOWN
- #else
- return ESHUTDOWN
- #endif
- }
- @_alwaysEmitIntoClient
- internal var _ETOOMANYREFS: CInt {
- #if os(Windows)
- return WSAETOOMANYREFS
- #else
- return ETOOMANYREFS
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _ETIMEDOUT: CInt { ETIMEDOUT }
- @_alwaysEmitIntoClient
- internal var _ECONNREFUSED: CInt { ECONNREFUSED }
- @_alwaysEmitIntoClient
- internal var _ELOOP: CInt { ELOOP }
- @_alwaysEmitIntoClient
- internal var _ENAMETOOLONG: CInt { ENAMETOOLONG }
- #if !os(WASI)
- @_alwaysEmitIntoClient
- internal var _EHOSTDOWN: CInt {
- #if os(Windows)
- return WSAEHOSTDOWN
- #else
- return EHOSTDOWN
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _EHOSTUNREACH: CInt { EHOSTUNREACH }
- @_alwaysEmitIntoClient
- internal var _ENOTEMPTY: CInt { ENOTEMPTY }
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _EPROCLIM: CInt { EPROCLIM }
- #endif
- #if !os(WASI)
- @_alwaysEmitIntoClient
- internal var _EUSERS: CInt {
- #if os(Windows)
- return WSAEUSERS
- #else
- return EUSERS
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _EDQUOT: CInt {
- #if os(Windows)
- return WSAEDQUOT
- #else
- return EDQUOT
- #endif
- }
- @_alwaysEmitIntoClient
- internal var _ESTALE: CInt {
- #if os(Windows)
- return WSAESTALE
- #else
- return ESTALE
- #endif
- }
- #if !os(WASI)
- @_alwaysEmitIntoClient
- internal var _EREMOTE: CInt {
- #if os(Windows)
- return WSAEREMOTE
- #else
- return EREMOTE
- #endif
- }
- #endif
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _EBADRPC: CInt { EBADRPC }
- @_alwaysEmitIntoClient
- internal var _ERPCMISMATCH: CInt { ERPCMISMATCH }
- @_alwaysEmitIntoClient
- internal var _EPROGUNAVAIL: CInt { EPROGUNAVAIL }
- @_alwaysEmitIntoClient
- internal var _EPROGMISMATCH: CInt { EPROGMISMATCH }
- @_alwaysEmitIntoClient
- internal var _EPROCUNAVAIL: CInt { EPROCUNAVAIL }
- #endif
- @_alwaysEmitIntoClient
- internal var _ENOLCK: CInt { ENOLCK }
- @_alwaysEmitIntoClient
- internal var _ENOSYS: CInt { ENOSYS }
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _EFTYPE: CInt { EFTYPE }
- @_alwaysEmitIntoClient
- internal var _EAUTH: CInt { EAUTH }
- @_alwaysEmitIntoClient
- internal var _ENEEDAUTH: CInt { ENEEDAUTH }
- #endif
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _EPWROFF: CInt { EPWROFF }
- @_alwaysEmitIntoClient
- internal var _EDEVERR: CInt { EDEVERR }
- #endif
- #if !os(Windows)
- @_alwaysEmitIntoClient
- internal var _EOVERFLOW: CInt { EOVERFLOW }
- #endif
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _EBADEXEC: CInt { EBADEXEC }
- @_alwaysEmitIntoClient
- internal var _EBADARCH: CInt { EBADARCH }
- @_alwaysEmitIntoClient
- internal var _ESHLIBVERS: CInt { ESHLIBVERS }
- @_alwaysEmitIntoClient
- internal var _EBADMACHO: CInt { EBADMACHO }
- #endif
- @_alwaysEmitIntoClient
- internal var _ECANCELED: CInt { ECANCELED }
- #if !os(Windows)
- @_alwaysEmitIntoClient
- internal var _EIDRM: CInt { EIDRM }
- @_alwaysEmitIntoClient
- internal var _ENOMSG: CInt { ENOMSG }
- #endif
- @_alwaysEmitIntoClient
- internal var _EILSEQ: CInt { EILSEQ }
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _ENOATTR: CInt { ENOATTR }
- #endif
- #if !os(Windows)
- @_alwaysEmitIntoClient
- internal var _EBADMSG: CInt { EBADMSG }
- #if !os(OpenBSD)
- @_alwaysEmitIntoClient
- internal var _EMULTIHOP: CInt { EMULTIHOP }
- #if !os(WASI) && !os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _ENODATA: CInt { ENODATA }
- #endif
- @_alwaysEmitIntoClient
- internal var _ENOLINK: CInt { ENOLINK }
- #if !os(WASI) && !os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _ENOSR: CInt { ENOSR }
- @_alwaysEmitIntoClient
- internal var _ENOSTR: CInt { ENOSTR }
- #endif
- #endif
- @_alwaysEmitIntoClient
- internal var _EPROTO: CInt { EPROTO }
- #if !os(OpenBSD) && !os(WASI) && !os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _ETIME: CInt { ETIME }
- #endif
- #endif
- @_alwaysEmitIntoClient
- internal var _EOPNOTSUPP: CInt {
- #if os(WASI)
- _getConst_EOPNOTSUPP()
- #else
- EOPNOTSUPP
- #endif
- }
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _ENOPOLICY: CInt { ENOPOLICY }
- #endif
- #if !os(Windows)
- @_alwaysEmitIntoClient
- internal var _ENOTRECOVERABLE: CInt { ENOTRECOVERABLE }
- @_alwaysEmitIntoClient
- internal var _EOWNERDEAD: CInt { EOWNERDEAD }
- #endif
- #if os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _ENOTCAPABLE: CInt { ENOTCAPABLE }
- @_alwaysEmitIntoClient
- internal var _ECAPMODE: CInt { ECAPMODE }
- @_alwaysEmitIntoClient
- internal var _EINTEGRITY: CInt { EINTEGRITY }
- #endif
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _EQFULL: CInt { EQFULL }
- #endif
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _ELAST: CInt { ELAST }
- #endif
- // MARK: File Operations
- @_alwaysEmitIntoClient
- internal var _O_RDONLY: CInt { O_RDONLY }
- @_alwaysEmitIntoClient
- internal var _O_WRONLY: CInt { O_WRONLY }
- @_alwaysEmitIntoClient
- internal var _O_RDWR: CInt { O_RDWR }
- #if !os(Windows)
- #if canImport(Musl)
- internal var _O_ACCMODE: CInt { 0x03|O_SEARCH }
- #else
- // TODO: API?
- @_alwaysEmitIntoClient
- internal var _O_ACCMODE: CInt {
- #if os(WASI)
- _getConst_O_ACCMODE()
- #else
- O_ACCMODE
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _O_NONBLOCK: CInt {
- #if os(WASI)
- _getConst_O_NONBLOCK()
- #else
- O_NONBLOCK
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _O_APPEND: CInt {
- #if os(WASI)
- _getConst_O_APPEND()
- #else
- O_APPEND
- #endif
- }
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _O_SHLOCK: CInt { O_SHLOCK }
- @_alwaysEmitIntoClient
- internal var _O_EXLOCK: CInt { O_EXLOCK }
- #endif
- #if !os(Windows)
- #if !os(WASI)
- // TODO: API?
- @_alwaysEmitIntoClient
- internal var _O_ASYNC: CInt { O_ASYNC }
- #endif
- @_alwaysEmitIntoClient
- internal var _O_NOFOLLOW: CInt { O_NOFOLLOW }
- #endif
- #if os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _O_FSYNC: CInt { O_FSYNC }
- @_alwaysEmitIntoClient
- internal var _O_SYNC: CInt { O_SYNC }
- #endif
- @_alwaysEmitIntoClient
- internal var _O_CREAT: CInt {
- #if os(WASI)
- _getConst_O_CREAT()
- #else
- O_CREAT
- #endif
- }
- @_alwaysEmitIntoClient
- internal var _O_TRUNC: CInt {
- #if os(WASI)
- _getConst_O_TRUNC()
- #else
- O_TRUNC
- #endif
- }
- @_alwaysEmitIntoClient
- internal var _O_EXCL: CInt {
- #if os(WASI)
- _getConst_O_EXCL()
- #else
- O_EXCL
- #endif
- }
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _O_EVTONLY: CInt { O_EVTONLY }
- #endif
- #if !os(Windows)
- // TODO: API?
- @_alwaysEmitIntoClient
- internal var _O_NOCTTY: CInt { O_NOCTTY }
- @_alwaysEmitIntoClient
- internal var _O_DIRECTORY: CInt {
- #if os(WASI)
- _getConst_O_DIRECTORY()
- #else
- O_DIRECTORY
- #endif
- }
- #endif
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _O_SYMLINK: CInt { O_SYMLINK }
- #endif
- @_alwaysEmitIntoClient
- internal var _O_CLOEXEC: CInt {
- #if os(Windows)
- O_NOINHERIT
- #else
- O_CLOEXEC
- #endif
- }
- #if !os(Windows)
- @_alwaysEmitIntoClient
- internal var _O_CLOFORK: CInt {
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- COMPATIBILITY_O_CLOFORK
- #elseif !os(WASI) && !os(Linux) && !os(Android)
- O_CLOFORK
- #else
- 0
- #endif
- }
- #endif
- @_alwaysEmitIntoClient
- internal var _SEEK_SET: CInt { SEEK_SET }
- @_alwaysEmitIntoClient
- internal var _SEEK_CUR: CInt { SEEK_CUR }
- @_alwaysEmitIntoClient
- internal var _SEEK_END: CInt { SEEK_END }
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _SEEK_HOLE: CInt { SEEK_HOLE }
- @_alwaysEmitIntoClient
- internal var _SEEK_DATA: CInt { SEEK_DATA }
- #endif
- // MARK: - File System
- #if !os(Windows)
- @_alwaysEmitIntoClient
- internal var _AT_FDCWD: CInt { AT_FDCWD }
- // MARK: - fstatat Flags
- @_alwaysEmitIntoClient
- internal var _AT_SYMLINK_NOFOLLOW: CInt { AT_SYMLINK_NOFOLLOW }
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _AT_SYMLINK_NOFOLLOW_ANY: CInt { AT_SYMLINK_NOFOLLOW_ANY }
- #endif
- #if canImport(Darwin, _version: 346) || os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _AT_RESOLVE_BENEATH: CInt { AT_RESOLVE_BENEATH }
- #endif
- // MARK: - File Mode / File Type
- @_alwaysEmitIntoClient
- internal var _MODE_FILETYPE_MASK: mode_t { S_IFMT }
- @_alwaysEmitIntoClient
- internal var _MODE_PERMISSIONS_MASK: mode_t { 0o7777 }
- @_alwaysEmitIntoClient
- internal var _S_IFDIR: mode_t { S_IFDIR }
- @_alwaysEmitIntoClient
- internal var _S_IFCHR: mode_t { S_IFCHR }
- @_alwaysEmitIntoClient
- internal var _S_IFBLK: mode_t { S_IFBLK }
- @_alwaysEmitIntoClient
- internal var _S_IFREG: mode_t { S_IFREG }
- @_alwaysEmitIntoClient
- internal var _S_IFIFO: mode_t { S_IFIFO }
- @_alwaysEmitIntoClient
- internal var _S_IFLNK: mode_t { S_IFLNK }
- @_alwaysEmitIntoClient
- internal var _S_IFSOCK: mode_t { S_IFSOCK }
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- // `S_IFWHT` is `Int32` on FreeBSD.
- @_alwaysEmitIntoClient
- internal var _S_IFWHT: mode_t { .init(S_IFWHT) }
- #endif
- // MARK: - stat/chflags File Flags
- // MARK: Flags Available on Darwin, FreeBSD, and OpenBSD
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD) || os(OpenBSD)
- @_alwaysEmitIntoClient
- internal var _UF_NODUMP: UInt32 { UInt32(bitPattern: UF_NODUMP) }
- @_alwaysEmitIntoClient
- internal var _UF_IMMUTABLE: UInt32 { UInt32(bitPattern: UF_IMMUTABLE) }
- @_alwaysEmitIntoClient
- internal var _UF_APPEND: UInt32 { UInt32(bitPattern: UF_APPEND) }
- @_alwaysEmitIntoClient
- internal var _SF_ARCHIVED: UInt32 { UInt32(bitPattern: SF_ARCHIVED) }
- @_alwaysEmitIntoClient
- internal var _SF_IMMUTABLE: UInt32 { UInt32(bitPattern: SF_IMMUTABLE) }
- @_alwaysEmitIntoClient
- internal var _SF_APPEND: UInt32 { UInt32(bitPattern: SF_APPEND) }
- #endif
- // MARK: Flags Available on Darwin and FreeBSD
- #if SYSTEM_PACKAGE_DARWIN || os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _UF_OPAQUE: UInt32 { UInt32(bitPattern: UF_OPAQUE) }
- @_alwaysEmitIntoClient
- internal var _UF_HIDDEN: UInt32 { UInt32(bitPattern: UF_HIDDEN) }
- @_alwaysEmitIntoClient
- internal var _SF_NOUNLINK: UInt32 { UInt32(bitPattern: SF_NOUNLINK) }
- #endif
- // MARK: Flags Available on Darwin Only
- #if SYSTEM_PACKAGE_DARWIN
- @_alwaysEmitIntoClient
- internal var _UF_COMPRESSED: UInt32 { UInt32(bitPattern: UF_COMPRESSED) }
- @_alwaysEmitIntoClient
- internal var _UF_TRACKED: UInt32 { UInt32(bitPattern: UF_TRACKED) }
- @_alwaysEmitIntoClient
- internal var _UF_DATAVAULT: UInt32 { UInt32(bitPattern: UF_DATAVAULT) }
- @_alwaysEmitIntoClient
- internal var _SF_RESTRICTED: UInt32 { UInt32(bitPattern: SF_RESTRICTED) }
- @_alwaysEmitIntoClient
- internal var _SF_FIRMLINK: UInt32 { UInt32(bitPattern: SF_FIRMLINK) }
- @_alwaysEmitIntoClient
- internal var _SF_DATALESS: UInt32 { UInt32(bitPattern: SF_DATALESS) }
- #endif
- // MARK: Flags Available on FreeBSD Only
- #if os(FreeBSD)
- @_alwaysEmitIntoClient
- internal var _UF_NOUNLINK: UInt32 { UInt32(bitPattern: UF_NOUNLINK) }
- @_alwaysEmitIntoClient
- internal var _UF_OFFLINE: UInt32 { UInt32(bitPattern: UF_OFFLINE) }
- @_alwaysEmitIntoClient
- internal var _UF_READONLY: UInt32 { UInt32(bitPattern: UF_READONLY) }
- @_alwaysEmitIntoClient
- internal var _UF_REPARSE: UInt32 { UInt32(bitPattern: UF_REPARSE) }
- @_alwaysEmitIntoClient
- internal var _UF_SPARSE: UInt32 { UInt32(bitPattern: UF_SPARSE) }
- @_alwaysEmitIntoClient
- internal var _UF_SYSTEM: UInt32 { UInt32(bitPattern: UF_SYSTEM) }
- @_alwaysEmitIntoClient
- internal var _SF_SNAPSHOT: UInt32 { UInt32(bitPattern: SF_SNAPSHOT) }
- #endif
- #endif // !os(Windows)
|