@@ -29,6 +29,100 @@ public var errno: Int32 {
2929// fcntl.h
3030//===----------------------------------------------------------------------===//
3131
32+ @warn_unused_result
33+ @_silgen_name ( " _swift_Bionic_open " )
34+ func _swift_Bionic_open( path: UnsafePointer < CChar > ,
35+ _ oflag: CInt ,
36+ _ mode: mode_t
37+ ) -> CInt
38+
39+ @warn_unused_result
40+ @_silgen_name ( " _swift_Bionic_openat " )
41+ func _swift_Bionic_openat(
42+ fd: CInt ,
43+ _ path: UnsafePointer < CChar > ,
44+ _ oflag: CInt ,
45+ _ mode: mode_t
46+ ) -> CInt
47+
48+ @warn_unused_result
49+ public func open(
50+ path: UnsafePointer < CChar > ,
51+ _ oflag: CInt
52+ ) -> CInt {
53+ return _swift_Bionic_open ( path, oflag, 0 )
54+ }
55+
56+ @warn_unused_result
57+ public func open(
58+ path: UnsafePointer < CChar > ,
59+ _ oflag: CInt ,
60+ _ mode: mode_t
61+ ) -> CInt {
62+ return _swift_Bionic_open ( path, oflag, mode)
63+ }
64+
65+ @warn_unused_result
66+ public func openat(
67+ fd: CInt ,
68+ _ path: UnsafePointer < CChar > ,
69+ _ oflag: CInt
70+ ) -> CInt {
71+ return _swift_Bionic_openat ( fd, path, oflag, 0 )
72+ }
73+
74+ @warn_unused_result
75+ public func openat(
76+ fd: CInt ,
77+ _ path: UnsafePointer < CChar > ,
78+ _ oflag: CInt ,
79+ _ mode: mode_t
80+ ) -> CInt {
81+ return _swift_Bionic_openat ( fd, path, oflag, mode)
82+ }
83+
84+ @warn_unused_result
85+ @_silgen_name ( " _swift_Bionic_fcntl " )
86+ internal func _swift_Bionic_fcntl(
87+ fd: CInt ,
88+ _ cmd: CInt ,
89+ _ value: CInt
90+ ) -> CInt
91+
92+ @warn_unused_result
93+ @_silgen_name ( " _swift_Bionic_fcntlPtr " )
94+ internal func _swift_Bionic_fcntlPtr(
95+ fd: CInt ,
96+ _ cmd: CInt ,
97+ _ ptr: UnsafeMutablePointer < Void >
98+ ) -> CInt
99+
100+ @warn_unused_result
101+ public func fcntl(
102+ fd: CInt ,
103+ _ cmd: CInt
104+ ) -> CInt {
105+ return _swift_Bionic_fcntl ( fd, cmd, 0 )
106+ }
107+
108+ @warn_unused_result
109+ public func fcntl(
110+ fd: CInt ,
111+ _ cmd: CInt ,
112+ _ value: CInt
113+ ) -> CInt {
114+ return _swift_Bionic_fcntl ( fd, cmd, value)
115+ }
116+
117+ @warn_unused_result
118+ public func fcntl(
119+ fd: CInt ,
120+ _ cmd: CInt ,
121+ _ ptr: UnsafeMutablePointer < Void >
122+ ) -> CInt {
123+ return _swift_Bionic_fcntlPtr ( fd, cmd, ptr)
124+ }
125+
32126public var S_IFMT : mode_t { return mode_t ( 0o170000 ) }
33127public var S_IFIFO : mode_t { return mode_t ( 0o010000 ) }
34128public var S_IFCHR : mode_t { return mode_t ( 0o020000 ) }
@@ -74,3 +168,48 @@ public var SIG_HOLD: __sighandler_t {
74168}
75169#endif
76170
171+ //===----------------------------------------------------------------------===//
172+ // semaphore.h
173+ //===----------------------------------------------------------------------===//
174+
175+ /// The value returned by `sem_open()` in the case of failure.
176+ public var SEM_FAILED : UnsafeMutablePointer < sem_t > {
177+ // FIXME: swift/stdlib/public/Glibc/Glibc.swift claims that
178+ // this value is ABI. The value here has not been verified
179+ // on Bionic.
180+ return UnsafeMutablePointer < sem_t > ( bitPattern: 0 )
181+ }
182+
183+ @warn_unused_result
184+ @_silgen_name ( " _swift_Bionic_sem_open2 " )
185+ internal func _swift_Bionic_sem_open2(
186+ name: UnsafePointer < CChar > ,
187+ _ oflag: CInt
188+ ) -> UnsafeMutablePointer < sem_t >
189+
190+ @warn_unused_result
191+ @_silgen_name ( " _swift_Bionic_sem_open4 " )
192+ internal func _swift_Bionic_sem_open4 (
193+ name: UnsafePointer < CChar > ,
194+ _ oflag: CInt ,
195+ _ mode: mode_t ,
196+ _ value: CUnsignedInt
197+ ) -> UnsafeMutablePointer < sem_t >
198+
199+ @warn_unused_result
200+ public func sem_open(
201+ name: UnsafePointer < CChar > ,
202+ _ oflag: CInt
203+ ) -> UnsafeMutablePointer < sem_t > {
204+ return _swift_Bionic_sem_open2 ( name, oflag)
205+ }
206+
207+ @warn_unused_result
208+ public func sem_open(
209+ name: UnsafePointer < CChar > ,
210+ _ oflag: CInt ,
211+ _ mode: mode_t ,
212+ _ value: CUnsignedInt
213+ ) -> UnsafeMutablePointer < sem_t > {
214+ return _swift_Bionic_sem_open4 ( name, oflag, mode, value)
215+ }
0 commit comments