0001 #if os(Linux)
0002 import Glibc
0003 #else
0004 import Darwin.C
0005 #endif
0006
0007
0008 func fdZero| Socket.swift:212 | fdZero(&readFDs) |
| Socket.swift:216 | fdZero(&writeFDs) |
| Socket.swift:220 | fdZero(&errorFDs) |
(inout set: fd_set) {
0009 #if os(Linux)
0010 set.__fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
0011 #else
0012 set.fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
0013 #endif
0014 }
0015
0016
0017 func fdSet| Socket.swift:213 | reads.forEach { fdSet($0.descriptor, &readFDs) } |
| Socket.swift:217 | writes.forEach { fdSet($0.descriptor, &writeFDs) } |
| Socket.swift:221 | errors.forEach { fdSet($0.descriptor, &errorFDs) } |
(descriptor: Int32, inout _ set: fd_set) {
0018 #if os(Linux)
0019 let intOffset = Int(descriptor / 16)
0020 let bitOffset = Int(descriptor % 16)
0021 let mask = 1 << bitOffset
0022 switch intOffset {
0023 case 0: set.__fds_bits.0 = set.__fds_bits.0 | mask
0024 case 1: set.__fds_bits.1 = set.__fds_bits.1 | mask
0025 case 2: set.__fds_bits.2 = set.__fds_bits.2 | mask
0026 case 3: set.__fds_bits.3 = set.__fds_bits.3 | mask
0027 case 4: set.__fds_bits.4 = set.__fds_bits.4 | mask
0028 case 5: set.__fds_bits.5 = set.__fds_bits.5 | mask
0029 case 6: set.__fds_bits.6 = set.__fds_bits.6 | mask
0030 case 7: set.__fds_bits.7 = set.__fds_bits.7 | mask
0031 case 8: set.__fds_bits.8 = set.__fds_bits.8 | mask
0032 case 9: set.__fds_bits.9 = set.__fds_bits.9 | mask
0033 case 10: set.__fds_bits.10 = set.__fds_bits.10 | mask
0034 case 11: set.__fds_bits.11 = set.__fds_bits.11 | mask
0035 case 12: set.__fds_bits.12 = set.__fds_bits.12 | mask
0036 case 13: set.__fds_bits.13 = set.__fds_bits.13 | mask
0037 case 14: set.__fds_bits.14 = set.__fds_bits.14 | mask
0038 case 15: set.__fds_bits.15 = set.__fds_bits.15 | mask
0039 default: break
0040 }
0041 #else
0042 let intOffset = Int32(descriptor / 16)
0043 let bitOffset = Int32(descriptor % 16)
0044 let mask: Int32 = 1 << bitOffset
0045
0046 switch intOffset {
0047 case 0: set.fds_bits.0 = set.fds_bits.0 | mask
0048 case 1: set.fds_bits.1 = set.fds_bits.1 | mask
0049 case 2: set.fds_bits.2 = set.fds_bits.2 | mask
0050 case 3: set.fds_bits.3 = set.fds_bits.3 | mask
0051 case 4: set.fds_bits.4 = set.fds_bits.4 | mask
0052 case 5: set.fds_bits.5 = set.fds_bits.5 | mask
0053 case 6: set.fds_bits.6 = set.fds_bits.6 | mask
0054 case 7: set.fds_bits.7 = set.fds_bits.7 | mask
0055 case 8: set.fds_bits.8 = set.fds_bits.8 | mask
0056 case 9: set.fds_bits.9 = set.fds_bits.9 | mask
0057 case 10: set.fds_bits.10 = set.fds_bits.10 | mask
0058 case 11: set.fds_bits.11 = set.fds_bits.11 | mask
0059 case 12: set.fds_bits.12 = set.fds_bits.12 | mask
0060 case 13: set.fds_bits.13 = set.fds_bits.13 | mask
0061 case 14: set.fds_bits.14 = set.fds_bits.14 | mask
0062 case 15: set.fds_bits.15 = set.fds_bits.15 | mask
0063 default: break
0064 }
0065 #endif
0066 }
0067
0068 func fdIsSet| Socket.swift:203 | fdIsSet($0.descriptor, &set) |
(descriptor: Int32, inout _ set: fd_set) -> Bool {
0069 #if os(Linux)
0070 let intOffset = Int(descriptor / 32)
0071 let bitOffset = Int(descriptor % 32)
0072 let mask = Int(1 << bitOffset)
0073
0074 switch intOffset {
0075 case 0: return set.__fds_bits.0 & mask != 0
0076 case 1: return set.__fds_bits.1 & mask != 0
0077 case 2: return set.__fds_bits.2 & mask != 0
0078 case 3: return set.__fds_bits.3 & mask != 0
0079 case 4: return set.__fds_bits.4 & mask != 0
0080 case 5: return set.__fds_bits.5 & mask != 0
0081 case 6: return set.__fds_bits.6 & mask != 0
0082 case 7: return set.__fds_bits.7 & mask != 0
0083 case 8: return set.__fds_bits.8 & mask != 0
0084 case 9: return set.__fds_bits.9 & mask != 0
0085 case 10: return set.__fds_bits.10 & mask != 0
0086 case 11: return set.__fds_bits.11 & mask != 0
0087 case 12: return set.__fds_bits.12 & mask != 0
0088 case 13: return set.__fds_bits.13 & mask != 0
0089 case 14: return set.__fds_bits.14 & mask != 0
0090 case 15: return set.__fds_bits.15 & mask != 0
0091 default: return false
0092 }
0093 #else
0094 let intOffset = Int32(descriptor / 32)
0095 let bitOffset = Int32(descriptor % 32)
0096 let mask = Int32(1 << bitOffset)
0097
0098 switch intOffset {
0099 case 0: return set.fds_bits.0 & mask != 0
0100 case 1: return set.fds_bits.1 & mask != 0
0101 case 2: return set.fds_bits.2 & mask != 0
0102 case 3: return set.fds_bits.3 & mask != 0
0103 case 4: return set.fds_bits.4 & mask != 0
0104 case 5: return set.fds_bits.5 & mask != 0
0105 case 6: return set.fds_bits.6 & mask != 0
0106 case 7: return set.fds_bits.7 & mask != 0
0107 case 8: return set.fds_bits.8 & mask != 0
0108 case 9: return set.fds_bits.9 & mask != 0
0109 case 10: return set.fds_bits.10 & mask != 0
0110 case 11: return set.fds_bits.11 & mask != 0
0111 case 12: return set.fds_bits.12 & mask != 0
0112 case 13: return set.fds_bits.13 & mask != 0
0113 case 14: return set.fds_bits.14 & mask != 0
0114 case 15: return set.fds_bits.15 & mask != 0
0115 case 16: return set.fds_bits.16 & mask != 0
0116 case 17: return set.fds_bits.17 & mask != 0
0117 case 18: return set.fds_bits.18 & mask != 0
0118 case 19: return set.fds_bits.19 & mask != 0
0119 case 20: return set.fds_bits.20 & mask != 0
0120 case 21: return set.fds_bits.21 & mask != 0
0121 case 22: return set.fds_bits.22 & mask != 0
0122 case 23: return set.fds_bits.23 & mask != 0
0123 case 24: return set.fds_bits.24 & mask != 0
0124 case 25: return set.fds_bits.25 & mask != 0
0125 case 26: return set.fds_bits.26 & mask != 0
0126 case 27: return set.fds_bits.27 & mask != 0
0127 case 28: return set.fds_bits.28 & mask != 0
0128 case 29: return set.fds_bits.29 & mask != 0
0129 case 30: return set.fds_bits.30 & mask != 0
0130 case 31: return set.fds_bits.31 & mask != 0
0131 default: return false
0132 }
0133 #endif
0134 }
0135