Skip to content

Commit f841beb

Browse files
authored
Merge pull request #724 from ahorek/dragonfly
identify dragonflybsd as a platform
2 parents 6e631e0 + e58135b commit f841beb

3 files changed

Lines changed: 154 additions & 1 deletion

File tree

lib/ffi/platform.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ module Platform
4646
"netbsd"
4747
when /openbsd/
4848
"openbsd"
49+
when /dragonfly/
50+
"dragonflybsd"
4951
when /sunos|solaris/
5052
"solaris"
5153
when /mingw|mswin/
@@ -92,9 +94,10 @@ def self.is_os(os)
9294
IS_FREEBSD = is_os("freebsd")
9395
IS_NETBSD = is_os("netbsd")
9496
IS_OPENBSD = is_os("openbsd")
97+
IS_DRAGONFLYBSD = is_os("dragonfly")
9598
IS_SOLARIS = is_os("solaris")
9699
IS_WINDOWS = is_os("windows")
97-
IS_BSD = IS_MAC || IS_FREEBSD || IS_NETBSD || IS_OPENBSD
100+
IS_BSD = IS_MAC || IS_FREEBSD || IS_NETBSD || IS_OPENBSD || IS_DRAGONFLYBSD
98101

99102
# Add the version for known ABI breaks
100103
name_version = "12" if IS_FREEBSD && OSVERSION >= 12 # 64-bit inodes
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
rbx.platform.typedef.*) = pointer
2+
rbx.platform.typedef.__char16_t = ushort
3+
rbx.platform.typedef.__char32_t = uint
4+
rbx.platform.typedef.__clock_t = ulong
5+
rbx.platform.typedef.__clockid_t = ulong
6+
rbx.platform.typedef.__ct_rune_t = int
7+
rbx.platform.typedef.__fd_mask = ulong
8+
rbx.platform.typedef.__int16_t = short
9+
rbx.platform.typedef.__int32_t = int
10+
rbx.platform.typedef.__int64_t = long
11+
rbx.platform.typedef.__int8_t = char
12+
rbx.platform.typedef.__int_fast16_t = int
13+
rbx.platform.typedef.__int_fast32_t = int
14+
rbx.platform.typedef.__int_fast64_t = long
15+
rbx.platform.typedef.__int_fast8_t = int
16+
rbx.platform.typedef.__int_least16_t = short
17+
rbx.platform.typedef.__int_least32_t = int
18+
rbx.platform.typedef.__int_least64_t = long
19+
rbx.platform.typedef.__int_least8_t = char
20+
rbx.platform.typedef.__intmax_t = long
21+
rbx.platform.typedef.__intptr_t = long
22+
rbx.platform.typedef.__nl_item = int
23+
rbx.platform.typedef.__off_t = long
24+
rbx.platform.typedef.__pid_t = int
25+
rbx.platform.typedef.__ptrdiff_t = long
26+
rbx.platform.typedef.__register_t = long
27+
rbx.platform.typedef.__rlim_t = long
28+
rbx.platform.typedef.__rune_t = int
29+
rbx.platform.typedef.__segsz_t = long
30+
rbx.platform.typedef.__sig_atomic_t = int
31+
rbx.platform.typedef.__size_t = ulong
32+
rbx.platform.typedef.__socklen_t = uint
33+
rbx.platform.typedef.__ssize_t = long
34+
rbx.platform.typedef.__suseconds_t = long
35+
rbx.platform.typedef.__time_t = long
36+
rbx.platform.typedef.__timer_t = int
37+
rbx.platform.typedef.__u_register_t = ulong
38+
rbx.platform.typedef.__uint16_t = ushort
39+
rbx.platform.typedef.__uint32_t = uint
40+
rbx.platform.typedef.__uint64_t = ulong
41+
rbx.platform.typedef.__uint8_t = uchar
42+
rbx.platform.typedef.__uint_fast16_t = uint
43+
rbx.platform.typedef.__uint_fast32_t = uint
44+
rbx.platform.typedef.__uint_fast64_t = ulong
45+
rbx.platform.typedef.__uint_fast8_t = uint
46+
rbx.platform.typedef.__uint_least16_t = ushort
47+
rbx.platform.typedef.__uint_least32_t = uint
48+
rbx.platform.typedef.__uint_least64_t = ulong
49+
rbx.platform.typedef.__uint_least8_t = uchar
50+
rbx.platform.typedef.__uintmax_t = ulong
51+
rbx.platform.typedef.__uintptr_t = ulong
52+
rbx.platform.typedef.__wchar_t = int
53+
rbx.platform.typedef.__wint_t = int
54+
rbx.platform.typedef.blkcnt_t = long
55+
rbx.platform.typedef.blksize_t = long
56+
rbx.platform.typedef.c_caddr_t = pointer
57+
rbx.platform.typedef.caddr_t = string
58+
rbx.platform.typedef.clock_t = ulong
59+
rbx.platform.typedef.clockid_t = ulong
60+
rbx.platform.typedef.cpulock_t = uint
61+
rbx.platform.typedef.daddr_t = int
62+
rbx.platform.typedef.dev_t = uint
63+
rbx.platform.typedef.fixpt_t = uint
64+
rbx.platform.typedef.fsblkcnt_t = ulong
65+
rbx.platform.typedef.fsfilcnt_t = ulong
66+
rbx.platform.typedef.gid_t = uint
67+
rbx.platform.typedef.id_t = long
68+
rbx.platform.typedef.in_addr_t = uint
69+
rbx.platform.typedef.in_port_t = ushort
70+
rbx.platform.typedef.ino_t = ulong
71+
rbx.platform.typedef.int16_t = short
72+
rbx.platform.typedef.int32_t = int
73+
rbx.platform.typedef.int64_t = long
74+
rbx.platform.typedef.int8_t = char
75+
rbx.platform.typedef.int_fast16_t = int
76+
rbx.platform.typedef.int_fast32_t = int
77+
rbx.platform.typedef.int_fast64_t = long
78+
rbx.platform.typedef.int_fast8_t = int
79+
rbx.platform.typedef.int_least16_t = short
80+
rbx.platform.typedef.int_least32_t = int
81+
rbx.platform.typedef.int_least64_t = long
82+
rbx.platform.typedef.int_least8_t = char
83+
rbx.platform.typedef.intmax_t = long
84+
rbx.platform.typedef.intptr_t = long
85+
rbx.platform.typedef.key_t = long
86+
rbx.platform.typedef.lwpid_t = int
87+
rbx.platform.typedef.mode_t = ushort
88+
rbx.platform.typedef.mqd_t = int
89+
rbx.platform.typedef.nlink_t = uint
90+
rbx.platform.typedef.off_t = long
91+
rbx.platform.typedef.pd_entry_t = ulong
92+
rbx.platform.typedef.pdp_entry_t = ulong
93+
rbx.platform.typedef.pid_t = int
94+
rbx.platform.typedef.pml4_entry_t = ulong
95+
rbx.platform.typedef.pt_entry_t = ulong
96+
rbx.platform.typedef.pthread_key_t = int
97+
rbx.platform.typedef.ptrdiff_t = long
98+
rbx.platform.typedef.qaddr_t = pointer
99+
rbx.platform.typedef.quad_t = long
100+
rbx.platform.typedef.register_t = long
101+
rbx.platform.typedef.rlim_t = long
102+
rbx.platform.typedef.sa_family_t = uchar
103+
rbx.platform.typedef.segsz_t = long
104+
rbx.platform.typedef.size_t = ulong
105+
rbx.platform.typedef.socklen_t = uint
106+
rbx.platform.typedef.ssize_t = long
107+
rbx.platform.typedef.suseconds_t = long
108+
rbx.platform.typedef.time_t = long
109+
rbx.platform.typedef.timer_t = int
110+
rbx.platform.typedef.u_char = uchar
111+
rbx.platform.typedef.u_daddr_t = uint
112+
rbx.platform.typedef.u_int = uint
113+
rbx.platform.typedef.u_int16_t = ushort
114+
rbx.platform.typedef.u_int32_t = uint
115+
rbx.platform.typedef.u_int64_t = ulong
116+
rbx.platform.typedef.u_int8_t = uchar
117+
rbx.platform.typedef.u_long = ulong
118+
rbx.platform.typedef.u_quad_t = ulong
119+
rbx.platform.typedef.u_register_t = ulong
120+
rbx.platform.typedef.u_short = ushort
121+
rbx.platform.typedef.uid_t = uint
122+
rbx.platform.typedef.uint = uint
123+
rbx.platform.typedef.uint16_t = ushort
124+
rbx.platform.typedef.uint32_t = uint
125+
rbx.platform.typedef.uint64_t = ulong
126+
rbx.platform.typedef.uint8_t = uchar
127+
rbx.platform.typedef.uint_fast16_t = uint
128+
rbx.platform.typedef.uint_fast32_t = uint
129+
rbx.platform.typedef.uint_fast64_t = ulong
130+
rbx.platform.typedef.uint_fast8_t = uint
131+
rbx.platform.typedef.uint_least16_t = ushort
132+
rbx.platform.typedef.uint_least32_t = uint
133+
rbx.platform.typedef.uint_least64_t = ulong
134+
rbx.platform.typedef.uint_least8_t = uchar
135+
rbx.platform.typedef.uintmax_t = ulong
136+
rbx.platform.typedef.uintptr_t = ulong
137+
rbx.platform.typedef.ulong = ulong
138+
rbx.platform.typedef.unchar = uchar
139+
rbx.platform.typedef.useconds_t = uint
140+
rbx.platform.typedef.ushort = ushort
141+
rbx.platform.typedef.v_caddr_t = pointer
142+
rbx.platform.typedef.vm_offset_t = ulong
143+
rbx.platform.typedef.vm_ooffset_t = long
144+
rbx.platform.typedef.vm_paddr_t = ulong
145+
rbx.platform.typedef.vm_pindex_t = ulong
146+
rbx.platform.typedef.vm_poff_t = ulong
147+
rbx.platform.typedef.vm_size_t = ulong
148+
rbx.platform.typedef.vm_spindex_t = ulong

spec/ffi/fixtures/compile.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ module TestLibrary
3737
"freebsd"
3838
when /openbsd/
3939
"openbsd"
40+
when /dragonfly/
41+
"dragonflybsd"
4042
when /sunos|solaris/
4143
"solaris"
4244
when /mswin|mingw/

0 commit comments

Comments
 (0)