ffi 1.15.4.pre1-java → 1.16.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,178 @@
1
+ rbx.platform.typedef.*__caddr_t = char
2
+ rbx.platform.typedef.__blkcnt64_t = long_long
3
+ rbx.platform.typedef.__blkcnt_t = long
4
+ rbx.platform.typedef.__blksize_t = long
5
+ rbx.platform.typedef.__clock_t = long
6
+ rbx.platform.typedef.__clockid_t = int
7
+ rbx.platform.typedef.__daddr_t = int
8
+ rbx.platform.typedef.__dev_t = ulong_long
9
+ rbx.platform.typedef.__fd_mask = long
10
+ rbx.platform.typedef.__fsblkcnt64_t = ulong_long
11
+ rbx.platform.typedef.__fsblkcnt_t = ulong
12
+ rbx.platform.typedef.__fsfilcnt64_t = ulong_long
13
+ rbx.platform.typedef.__fsfilcnt_t = ulong
14
+ rbx.platform.typedef.__fsword_t = int
15
+ rbx.platform.typedef.__gid_t = uint
16
+ rbx.platform.typedef.__id_t = uint
17
+ rbx.platform.typedef.__ino64_t = ulong_long
18
+ rbx.platform.typedef.__ino_t = ulong
19
+ rbx.platform.typedef.__int16_t = short
20
+ rbx.platform.typedef.__int32_t = int
21
+ rbx.platform.typedef.__int64_t = long_long
22
+ rbx.platform.typedef.__int8_t = char
23
+ rbx.platform.typedef.__int_least16_t = short
24
+ rbx.platform.typedef.__int_least32_t = int
25
+ rbx.platform.typedef.__int_least64_t = long_long
26
+ rbx.platform.typedef.__int_least8_t = char
27
+ rbx.platform.typedef.__intmax_t = long_long
28
+ rbx.platform.typedef.__intptr_t = int
29
+ rbx.platform.typedef.__kernel_caddr_t = string
30
+ rbx.platform.typedef.__kernel_clock_t = long
31
+ rbx.platform.typedef.__kernel_clockid_t = int
32
+ rbx.platform.typedef.__kernel_daddr_t = int
33
+ rbx.platform.typedef.__kernel_gid16_t = ushort
34
+ rbx.platform.typedef.__kernel_gid32_t = uint
35
+ rbx.platform.typedef.__kernel_gid_t = uint
36
+ rbx.platform.typedef.__kernel_ino64_t = ulong_long
37
+ rbx.platform.typedef.__kernel_ino_t = ulong
38
+ rbx.platform.typedef.__kernel_ipc_pid_t = ushort
39
+ rbx.platform.typedef.__kernel_key_t = int
40
+ rbx.platform.typedef.__kernel_loff_t = long_long
41
+ rbx.platform.typedef.__kernel_long_t = long
42
+ rbx.platform.typedef.__kernel_mode_t = ushort
43
+ rbx.platform.typedef.__kernel_mqd_t = int
44
+ rbx.platform.typedef.__kernel_off64_t = long_long
45
+ rbx.platform.typedef.__kernel_off_t = long
46
+ rbx.platform.typedef.__kernel_old_dev_t = uint
47
+ rbx.platform.typedef.__kernel_old_gid_t = uint
48
+ rbx.platform.typedef.__kernel_old_time_t = long
49
+ rbx.platform.typedef.__kernel_old_uid_t = uint
50
+ rbx.platform.typedef.__kernel_pid_t = int
51
+ rbx.platform.typedef.__kernel_ptrdiff_t = int
52
+ rbx.platform.typedef.__kernel_size_t = uint
53
+ rbx.platform.typedef.__kernel_ssize_t = int
54
+ rbx.platform.typedef.__kernel_suseconds_t = long
55
+ rbx.platform.typedef.__kernel_time64_t = long_long
56
+ rbx.platform.typedef.__kernel_time_t = long
57
+ rbx.platform.typedef.__kernel_timer_t = int
58
+ rbx.platform.typedef.__kernel_uid16_t = ushort
59
+ rbx.platform.typedef.__kernel_uid32_t = uint
60
+ rbx.platform.typedef.__kernel_uid_t = uint
61
+ rbx.platform.typedef.__kernel_ulong_t = ulong
62
+ rbx.platform.typedef.__key_t = int
63
+ rbx.platform.typedef.__loff_t = long_long
64
+ rbx.platform.typedef.__mode_t = uint
65
+ rbx.platform.typedef.__nlink_t = uint
66
+ rbx.platform.typedef.__off64_t = long_long
67
+ rbx.platform.typedef.__off_t = long
68
+ rbx.platform.typedef.__pid_t = int
69
+ rbx.platform.typedef.__priority_which_t = int
70
+ rbx.platform.typedef.__quad_t = long_long
71
+ rbx.platform.typedef.__rlim64_t = ulong_long
72
+ rbx.platform.typedef.__rlim_t = ulong
73
+ rbx.platform.typedef.__rlimit_resource_t = int
74
+ rbx.platform.typedef.__rusage_who_t = int
75
+ rbx.platform.typedef.__sig_atomic_t = int
76
+ rbx.platform.typedef.__socklen_t = uint
77
+ rbx.platform.typedef.__ssize_t = int
78
+ rbx.platform.typedef.__suseconds64_t = long_long
79
+ rbx.platform.typedef.__suseconds_t = long
80
+ rbx.platform.typedef.__syscall_slong_t = long
81
+ rbx.platform.typedef.__syscall_ulong_t = ulong
82
+ rbx.platform.typedef.__thrd_t = ulong
83
+ rbx.platform.typedef.__time64_t = long_long
84
+ rbx.platform.typedef.__time_t = long
85
+ rbx.platform.typedef.__timer_t = pointer
86
+ rbx.platform.typedef.__tss_t = uint
87
+ rbx.platform.typedef.__u_char = uchar
88
+ rbx.platform.typedef.__u_int = uint
89
+ rbx.platform.typedef.__u_long = ulong
90
+ rbx.platform.typedef.__u_quad_t = ulong_long
91
+ rbx.platform.typedef.__u_short = ushort
92
+ rbx.platform.typedef.__uid_t = uint
93
+ rbx.platform.typedef.__uint16_t = ushort
94
+ rbx.platform.typedef.__uint32_t = uint
95
+ rbx.platform.typedef.__uint64_t = ulong_long
96
+ rbx.platform.typedef.__uint8_t = uchar
97
+ rbx.platform.typedef.__uint_least16_t = ushort
98
+ rbx.platform.typedef.__uint_least32_t = uint
99
+ rbx.platform.typedef.__uint_least64_t = ulong_long
100
+ rbx.platform.typedef.__uint_least8_t = uchar
101
+ rbx.platform.typedef.__uintmax_t = ulong_long
102
+ rbx.platform.typedef.__useconds_t = uint
103
+ rbx.platform.typedef.blkcnt_t = long_long
104
+ rbx.platform.typedef.blksize_t = long
105
+ rbx.platform.typedef.clock_t = long
106
+ rbx.platform.typedef.clockid_t = int
107
+ rbx.platform.typedef.daddr_t = int
108
+ rbx.platform.typedef.dev_t = ulong_long
109
+ rbx.platform.typedef.fd_mask = long
110
+ rbx.platform.typedef.fsblkcnt_t = ulong_long
111
+ rbx.platform.typedef.fsfilcnt_t = ulong_long
112
+ rbx.platform.typedef.gid_t = uint
113
+ rbx.platform.typedef.id_t = uint
114
+ rbx.platform.typedef.in_addr_t = uint
115
+ rbx.platform.typedef.in_port_t = ushort
116
+ rbx.platform.typedef.ino_t = ulong_long
117
+ rbx.platform.typedef.int16_t = short
118
+ rbx.platform.typedef.int32_t = int
119
+ rbx.platform.typedef.int64_t = long_long
120
+ rbx.platform.typedef.int8_t = char
121
+ rbx.platform.typedef.int_fast16_t = int
122
+ rbx.platform.typedef.int_fast32_t = int
123
+ rbx.platform.typedef.int_fast64_t = long_long
124
+ rbx.platform.typedef.int_fast8_t = char
125
+ rbx.platform.typedef.int_least16_t = short
126
+ rbx.platform.typedef.int_least32_t = int
127
+ rbx.platform.typedef.int_least64_t = long_long
128
+ rbx.platform.typedef.int_least8_t = char
129
+ rbx.platform.typedef.intmax_t = long_long
130
+ rbx.platform.typedef.intptr_t = int
131
+ rbx.platform.typedef.key_t = int
132
+ rbx.platform.typedef.loff_t = long_long
133
+ rbx.platform.typedef.mode_t = uint
134
+ rbx.platform.typedef.nlink_t = uint
135
+ rbx.platform.typedef.off_t = long_long
136
+ rbx.platform.typedef.pid_t = int
137
+ rbx.platform.typedef.pthread_key_t = uint
138
+ rbx.platform.typedef.pthread_once_t = int
139
+ rbx.platform.typedef.pthread_t = ulong
140
+ rbx.platform.typedef.ptrdiff_t = int
141
+ rbx.platform.typedef.quad_t = long_long
142
+ rbx.platform.typedef.register_t = long
143
+ rbx.platform.typedef.rlim_t = ulong_long
144
+ rbx.platform.typedef.sa_family_t = ushort
145
+ rbx.platform.typedef.size_t = uint
146
+ rbx.platform.typedef.socklen_t = uint
147
+ rbx.platform.typedef.ssize_t = int
148
+ rbx.platform.typedef.suseconds_t = long
149
+ rbx.platform.typedef.time_t = long
150
+ rbx.platform.typedef.timer_t = pointer
151
+ rbx.platform.typedef.u_char = uchar
152
+ rbx.platform.typedef.u_int = uint
153
+ rbx.platform.typedef.u_int16_t = ushort
154
+ rbx.platform.typedef.u_int32_t = uint
155
+ rbx.platform.typedef.u_int64_t = ulong_long
156
+ rbx.platform.typedef.u_int8_t = uchar
157
+ rbx.platform.typedef.u_long = ulong
158
+ rbx.platform.typedef.u_quad_t = ulong_long
159
+ rbx.platform.typedef.u_short = ushort
160
+ rbx.platform.typedef.uid_t = uint
161
+ rbx.platform.typedef.uint = uint
162
+ rbx.platform.typedef.uint16_t = ushort
163
+ rbx.platform.typedef.uint32_t = uint
164
+ rbx.platform.typedef.uint64_t = ulong_long
165
+ rbx.platform.typedef.uint8_t = uchar
166
+ rbx.platform.typedef.uint_fast16_t = uint
167
+ rbx.platform.typedef.uint_fast32_t = uint
168
+ rbx.platform.typedef.uint_fast64_t = ulong_long
169
+ rbx.platform.typedef.uint_fast8_t = uchar
170
+ rbx.platform.typedef.uint_least16_t = ushort
171
+ rbx.platform.typedef.uint_least32_t = uint
172
+ rbx.platform.typedef.uint_least64_t = ulong_long
173
+ rbx.platform.typedef.uint_least8_t = uchar
174
+ rbx.platform.typedef.uintmax_t = ulong_long
175
+ rbx.platform.typedef.uintptr_t = uint
176
+ rbx.platform.typedef.ulong = ulong
177
+ rbx.platform.typedef.ushort = ushort
178
+ rbx.platform.typedef.wchar_t = long
@@ -0,0 +1,141 @@
1
+ rbx.platform.typedef.*__caddr_t = char
2
+ rbx.platform.typedef.__blkcnt64_t = long
3
+ rbx.platform.typedef.__blkcnt_t = long
4
+ rbx.platform.typedef.__blksize_t = int
5
+ rbx.platform.typedef.__clock_t = long
6
+ rbx.platform.typedef.__clockid_t = int
7
+ rbx.platform.typedef.__daddr_t = int
8
+ rbx.platform.typedef.__dev_t = ulong
9
+ rbx.platform.typedef.__fd_mask = long
10
+ rbx.platform.typedef.__fsblkcnt64_t = ulong
11
+ rbx.platform.typedef.__fsblkcnt_t = ulong
12
+ rbx.platform.typedef.__fsfilcnt64_t = ulong
13
+ rbx.platform.typedef.__fsfilcnt_t = ulong
14
+ rbx.platform.typedef.__fsword_t = long
15
+ rbx.platform.typedef.__gid_t = uint
16
+ rbx.platform.typedef.__id_t = uint
17
+ rbx.platform.typedef.__ino64_t = ulong
18
+ rbx.platform.typedef.__ino_t = ulong
19
+ rbx.platform.typedef.__int16_t = short
20
+ rbx.platform.typedef.__int32_t = int
21
+ rbx.platform.typedef.__int64_t = long
22
+ rbx.platform.typedef.__int8_t = char
23
+ rbx.platform.typedef.__int_least16_t = short
24
+ rbx.platform.typedef.__int_least32_t = int
25
+ rbx.platform.typedef.__int_least64_t = long
26
+ rbx.platform.typedef.__int_least8_t = char
27
+ rbx.platform.typedef.__intmax_t = long
28
+ rbx.platform.typedef.__intptr_t = long
29
+ rbx.platform.typedef.__key_t = int
30
+ rbx.platform.typedef.__loff_t = long
31
+ rbx.platform.typedef.__mode_t = uint
32
+ rbx.platform.typedef.__nlink_t = uint
33
+ rbx.platform.typedef.__off64_t = long
34
+ rbx.platform.typedef.__off_t = long
35
+ rbx.platform.typedef.__pid_t = int
36
+ rbx.platform.typedef.__priority_which_t = int
37
+ rbx.platform.typedef.__quad_t = long
38
+ rbx.platform.typedef.__rlim64_t = ulong
39
+ rbx.platform.typedef.__rlim_t = ulong
40
+ rbx.platform.typedef.__rlimit_resource_t = int
41
+ rbx.platform.typedef.__rusage_who_t = int
42
+ rbx.platform.typedef.__sig_atomic_t = int
43
+ rbx.platform.typedef.__socklen_t = uint
44
+ rbx.platform.typedef.__ssize_t = long
45
+ rbx.platform.typedef.__suseconds_t = long
46
+ rbx.platform.typedef.__syscall_slong_t = long
47
+ rbx.platform.typedef.__syscall_ulong_t = ulong
48
+ rbx.platform.typedef.__time_t = long
49
+ rbx.platform.typedef.__timer_t = pointer
50
+ rbx.platform.typedef.__u_char = uchar
51
+ rbx.platform.typedef.__u_int = uint
52
+ rbx.platform.typedef.__u_long = ulong
53
+ rbx.platform.typedef.__u_quad_t = ulong
54
+ rbx.platform.typedef.__u_short = ushort
55
+ rbx.platform.typedef.__uid_t = uint
56
+ rbx.platform.typedef.__uint16_t = ushort
57
+ rbx.platform.typedef.__uint32_t = uint
58
+ rbx.platform.typedef.__uint64_t = ulong
59
+ rbx.platform.typedef.__uint8_t = uchar
60
+ rbx.platform.typedef.__uint_least16_t = ushort
61
+ rbx.platform.typedef.__uint_least32_t = uint
62
+ rbx.platform.typedef.__uint_least64_t = ulong
63
+ rbx.platform.typedef.__uint_least8_t = uchar
64
+ rbx.platform.typedef.__uintmax_t = ulong
65
+ rbx.platform.typedef.__useconds_t = uint
66
+ rbx.platform.typedef.blkcnt_t = long
67
+ rbx.platform.typedef.blksize_t = int
68
+ rbx.platform.typedef.clock_t = long
69
+ rbx.platform.typedef.clockid_t = int
70
+ rbx.platform.typedef.daddr_t = int
71
+ rbx.platform.typedef.dev_t = ulong
72
+ rbx.platform.typedef.fd_mask = long
73
+ rbx.platform.typedef.fsblkcnt_t = ulong
74
+ rbx.platform.typedef.fsfilcnt_t = ulong
75
+ rbx.platform.typedef.gid_t = uint
76
+ rbx.platform.typedef.id_t = uint
77
+ rbx.platform.typedef.in_addr_t = uint
78
+ rbx.platform.typedef.in_port_t = ushort
79
+ rbx.platform.typedef.ino_t = ulong
80
+ rbx.platform.typedef.int16_t = short
81
+ rbx.platform.typedef.int32_t = int
82
+ rbx.platform.typedef.int64_t = long
83
+ rbx.platform.typedef.int8_t = char
84
+ rbx.platform.typedef.int_fast16_t = long
85
+ rbx.platform.typedef.int_fast32_t = long
86
+ rbx.platform.typedef.int_fast64_t = long
87
+ rbx.platform.typedef.int_fast8_t = char
88
+ rbx.platform.typedef.int_least16_t = short
89
+ rbx.platform.typedef.int_least32_t = int
90
+ rbx.platform.typedef.int_least64_t = long
91
+ rbx.platform.typedef.int_least8_t = char
92
+ rbx.platform.typedef.intmax_t = long
93
+ rbx.platform.typedef.intptr_t = long
94
+ rbx.platform.typedef.key_t = int
95
+ rbx.platform.typedef.loff_t = long
96
+ rbx.platform.typedef.mode_t = uint
97
+ rbx.platform.typedef.nlink_t = uint
98
+ rbx.platform.typedef.off_t = long
99
+ rbx.platform.typedef.pid_t = int
100
+ rbx.platform.typedef.pthread_key_t = uint
101
+ rbx.platform.typedef.pthread_once_t = int
102
+ rbx.platform.typedef.pthread_t = ulong
103
+ rbx.platform.typedef.ptrdiff_t = long
104
+ rbx.platform.typedef.quad_t = long
105
+ rbx.platform.typedef.register_t = long
106
+ rbx.platform.typedef.rlim_t = ulong
107
+ rbx.platform.typedef.sa_family_t = ushort
108
+ rbx.platform.typedef.size_t = ulong
109
+ rbx.platform.typedef.socklen_t = uint
110
+ rbx.platform.typedef.ssize_t = long
111
+ rbx.platform.typedef.suseconds_t = long
112
+ rbx.platform.typedef.time_t = long
113
+ rbx.platform.typedef.timer_t = pointer
114
+ rbx.platform.typedef.u_char = uchar
115
+ rbx.platform.typedef.u_int = uint
116
+ rbx.platform.typedef.u_int16_t = ushort
117
+ rbx.platform.typedef.u_int32_t = uint
118
+ rbx.platform.typedef.u_int64_t = ulong_long
119
+ rbx.platform.typedef.u_int8_t = uchar
120
+ rbx.platform.typedef.u_long = ulong
121
+ rbx.platform.typedef.u_quad_t = ulong
122
+ rbx.platform.typedef.u_short = ushort
123
+ rbx.platform.typedef.uid_t = uint
124
+ rbx.platform.typedef.uint = uint
125
+ rbx.platform.typedef.uint16_t = ushort
126
+ rbx.platform.typedef.uint32_t = uint
127
+ rbx.platform.typedef.uint64_t = ulong
128
+ rbx.platform.typedef.uint8_t = uchar
129
+ rbx.platform.typedef.uint_fast16_t = ulong
130
+ rbx.platform.typedef.uint_fast32_t = ulong
131
+ rbx.platform.typedef.uint_fast64_t = ulong
132
+ rbx.platform.typedef.uint_fast8_t = uchar
133
+ rbx.platform.typedef.uint_least16_t = ushort
134
+ rbx.platform.typedef.uint_least32_t = uint
135
+ rbx.platform.typedef.uint_least64_t = ulong
136
+ rbx.platform.typedef.uint_least8_t = uchar
137
+ rbx.platform.typedef.uintmax_t = ulong
138
+ rbx.platform.typedef.uintptr_t = ulong
139
+ rbx.platform.typedef.ulong = ulong
140
+ rbx.platform.typedef.ushort = ushort
141
+ rbx.platform.typedef.wchar_t = int
@@ -0,0 +1,141 @@
1
+ rbx.platform.typedef.*__caddr_t = char
2
+ rbx.platform.typedef.__blkcnt64_t = long
3
+ rbx.platform.typedef.__blkcnt_t = long
4
+ rbx.platform.typedef.__blksize_t = int
5
+ rbx.platform.typedef.__clock_t = long
6
+ rbx.platform.typedef.__clockid_t = int
7
+ rbx.platform.typedef.__daddr_t = int
8
+ rbx.platform.typedef.__dev_t = ulong
9
+ rbx.platform.typedef.__fd_mask = long
10
+ rbx.platform.typedef.__fsblkcnt64_t = ulong
11
+ rbx.platform.typedef.__fsblkcnt_t = ulong
12
+ rbx.platform.typedef.__fsfilcnt64_t = ulong
13
+ rbx.platform.typedef.__fsfilcnt_t = ulong
14
+ rbx.platform.typedef.__fsword_t = long
15
+ rbx.platform.typedef.__gid_t = uint
16
+ rbx.platform.typedef.__id_t = uint
17
+ rbx.platform.typedef.__ino64_t = ulong
18
+ rbx.platform.typedef.__ino_t = ulong
19
+ rbx.platform.typedef.__int16_t = short
20
+ rbx.platform.typedef.__int32_t = int
21
+ rbx.platform.typedef.__int64_t = long
22
+ rbx.platform.typedef.__int8_t = char
23
+ rbx.platform.typedef.__int_least16_t = short
24
+ rbx.platform.typedef.__int_least32_t = int
25
+ rbx.platform.typedef.__int_least64_t = long
26
+ rbx.platform.typedef.__int_least8_t = char
27
+ rbx.platform.typedef.__intmax_t = long
28
+ rbx.platform.typedef.__intptr_t = long
29
+ rbx.platform.typedef.__key_t = int
30
+ rbx.platform.typedef.__loff_t = long
31
+ rbx.platform.typedef.__mode_t = uint
32
+ rbx.platform.typedef.__nlink_t = uint
33
+ rbx.platform.typedef.__off64_t = long
34
+ rbx.platform.typedef.__off_t = long
35
+ rbx.platform.typedef.__pid_t = int
36
+ rbx.platform.typedef.__priority_which_t = int
37
+ rbx.platform.typedef.__quad_t = long
38
+ rbx.platform.typedef.__rlim64_t = ulong
39
+ rbx.platform.typedef.__rlim_t = ulong
40
+ rbx.platform.typedef.__rlimit_resource_t = int
41
+ rbx.platform.typedef.__rusage_who_t = int
42
+ rbx.platform.typedef.__sig_atomic_t = int
43
+ rbx.platform.typedef.__socklen_t = uint
44
+ rbx.platform.typedef.__ssize_t = long
45
+ rbx.platform.typedef.__suseconds_t = long
46
+ rbx.platform.typedef.__syscall_slong_t = long
47
+ rbx.platform.typedef.__syscall_ulong_t = ulong
48
+ rbx.platform.typedef.__time_t = long
49
+ rbx.platform.typedef.__timer_t = pointer
50
+ rbx.platform.typedef.__u_char = uchar
51
+ rbx.platform.typedef.__u_int = uint
52
+ rbx.platform.typedef.__u_long = ulong
53
+ rbx.platform.typedef.__u_quad_t = ulong
54
+ rbx.platform.typedef.__u_short = ushort
55
+ rbx.platform.typedef.__uid_t = uint
56
+ rbx.platform.typedef.__uint16_t = ushort
57
+ rbx.platform.typedef.__uint32_t = uint
58
+ rbx.platform.typedef.__uint64_t = ulong
59
+ rbx.platform.typedef.__uint8_t = uchar
60
+ rbx.platform.typedef.__uint_least16_t = ushort
61
+ rbx.platform.typedef.__uint_least32_t = uint
62
+ rbx.platform.typedef.__uint_least64_t = ulong
63
+ rbx.platform.typedef.__uint_least8_t = uchar
64
+ rbx.platform.typedef.__uintmax_t = ulong
65
+ rbx.platform.typedef.__useconds_t = uint
66
+ rbx.platform.typedef.blkcnt_t = long
67
+ rbx.platform.typedef.blksize_t = int
68
+ rbx.platform.typedef.clock_t = long
69
+ rbx.platform.typedef.clockid_t = int
70
+ rbx.platform.typedef.daddr_t = int
71
+ rbx.platform.typedef.dev_t = ulong
72
+ rbx.platform.typedef.fd_mask = long
73
+ rbx.platform.typedef.fsblkcnt_t = ulong
74
+ rbx.platform.typedef.fsfilcnt_t = ulong
75
+ rbx.platform.typedef.gid_t = uint
76
+ rbx.platform.typedef.id_t = uint
77
+ rbx.platform.typedef.in_addr_t = uint
78
+ rbx.platform.typedef.in_port_t = ushort
79
+ rbx.platform.typedef.ino_t = ulong
80
+ rbx.platform.typedef.int16_t = short
81
+ rbx.platform.typedef.int32_t = int
82
+ rbx.platform.typedef.int64_t = long
83
+ rbx.platform.typedef.int8_t = char
84
+ rbx.platform.typedef.int_fast16_t = long
85
+ rbx.platform.typedef.int_fast32_t = long
86
+ rbx.platform.typedef.int_fast64_t = long
87
+ rbx.platform.typedef.int_fast8_t = char
88
+ rbx.platform.typedef.int_least16_t = short
89
+ rbx.platform.typedef.int_least32_t = int
90
+ rbx.platform.typedef.int_least64_t = long
91
+ rbx.platform.typedef.int_least8_t = char
92
+ rbx.platform.typedef.intmax_t = long
93
+ rbx.platform.typedef.intptr_t = long
94
+ rbx.platform.typedef.key_t = int
95
+ rbx.platform.typedef.loff_t = long
96
+ rbx.platform.typedef.mode_t = uint
97
+ rbx.platform.typedef.nlink_t = uint
98
+ rbx.platform.typedef.off_t = long
99
+ rbx.platform.typedef.pid_t = int
100
+ rbx.platform.typedef.pthread_key_t = uint
101
+ rbx.platform.typedef.pthread_once_t = int
102
+ rbx.platform.typedef.pthread_t = ulong
103
+ rbx.platform.typedef.ptrdiff_t = long
104
+ rbx.platform.typedef.quad_t = long
105
+ rbx.platform.typedef.register_t = long
106
+ rbx.platform.typedef.rlim_t = ulong
107
+ rbx.platform.typedef.sa_family_t = ushort
108
+ rbx.platform.typedef.size_t = ulong
109
+ rbx.platform.typedef.socklen_t = uint
110
+ rbx.platform.typedef.ssize_t = long
111
+ rbx.platform.typedef.suseconds_t = long
112
+ rbx.platform.typedef.time_t = long
113
+ rbx.platform.typedef.timer_t = pointer
114
+ rbx.platform.typedef.u_char = uchar
115
+ rbx.platform.typedef.u_int = uint
116
+ rbx.platform.typedef.u_int16_t = ushort
117
+ rbx.platform.typedef.u_int32_t = uint
118
+ rbx.platform.typedef.u_int64_t = ulong_long
119
+ rbx.platform.typedef.u_int8_t = uchar
120
+ rbx.platform.typedef.u_long = ulong
121
+ rbx.platform.typedef.u_quad_t = ulong
122
+ rbx.platform.typedef.u_short = ushort
123
+ rbx.platform.typedef.uid_t = uint
124
+ rbx.platform.typedef.uint = uint
125
+ rbx.platform.typedef.uint16_t = ushort
126
+ rbx.platform.typedef.uint32_t = uint
127
+ rbx.platform.typedef.uint64_t = ulong
128
+ rbx.platform.typedef.uint8_t = uchar
129
+ rbx.platform.typedef.uint_fast16_t = ulong
130
+ rbx.platform.typedef.uint_fast32_t = ulong
131
+ rbx.platform.typedef.uint_fast64_t = ulong
132
+ rbx.platform.typedef.uint_fast8_t = uchar
133
+ rbx.platform.typedef.uint_least16_t = ushort
134
+ rbx.platform.typedef.uint_least32_t = uint
135
+ rbx.platform.typedef.uint_least64_t = ulong
136
+ rbx.platform.typedef.uint_least8_t = uchar
137
+ rbx.platform.typedef.uintmax_t = ulong
138
+ rbx.platform.typedef.uintptr_t = ulong
139
+ rbx.platform.typedef.ulong = ulong
140
+ rbx.platform.typedef.ushort = ushort
141
+ rbx.platform.typedef.wchar_t = int
data/lib/ffi/platform.rb CHANGED
@@ -29,13 +29,15 @@
29
29
  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.#
30
30
 
31
31
  require 'rbconfig'
32
+ require_relative 'compat'
33
+
32
34
  module FFI
33
35
  class PlatformError < LoadError; end
34
36
 
35
37
  # This module defines different constants and class methods to play with
36
38
  # various platforms.
37
39
  module Platform
38
- OS = case RbConfig::CONFIG['host_os'].downcase
40
+ OS = FFI.make_shareable(case RbConfig::CONFIG['host_os'].downcase
39
41
  when /linux/
40
42
  "linux"
41
43
  when /darwin/
@@ -54,13 +56,13 @@ module FFI
54
56
  "windows"
55
57
  else
56
58
  RbConfig::CONFIG['host_os'].downcase
57
- end
59
+ end)
58
60
 
59
61
  OSVERSION = RbConfig::CONFIG['host_os'].gsub(/[^\d]/, '').to_i
60
62
 
61
- CPU = RbConfig::CONFIG['host_cpu']
63
+ CPU = FFI.make_shareable(RbConfig::CONFIG['host_cpu'])
62
64
 
63
- ARCH = case CPU.downcase
65
+ ARCH = FFI.make_shareable(case CPU.downcase
64
66
  when /amd64|x86_64|x64/
65
67
  "x86_64"
66
68
  when /i\d86|x86|i86pc/
@@ -81,7 +83,7 @@ module FFI
81
83
  end
82
84
  else
83
85
  RbConfig::CONFIG['host_cpu']
84
- end
86
+ end)
85
87
 
86
88
  private
87
89
  # @param [String) os
@@ -105,21 +107,21 @@ module FFI
105
107
  # Add the version for known ABI breaks
106
108
  name_version = "12" if IS_FREEBSD && OSVERSION >= 12 # 64-bit inodes
107
109
 
108
- NAME = "#{ARCH}-#{OS}#{name_version}"
109
- CONF_DIR = File.join(File.dirname(__FILE__), 'platform', NAME)
110
+ NAME = FFI.make_shareable("#{ARCH}-#{OS}#{name_version}")
111
+ CONF_DIR = FFI.make_shareable(File.join(File.dirname(__FILE__), 'platform', NAME))
110
112
 
111
113
  public
112
114
 
113
- LIBPREFIX = case OS
115
+ LIBPREFIX = FFI.make_shareable(case OS
114
116
  when /windows|msys/
115
117
  ''
116
118
  when /cygwin/
117
119
  'cyg'
118
120
  else
119
121
  'lib'
120
- end
122
+ end)
121
123
 
122
- LIBSUFFIX = case OS
124
+ LIBSUFFIX = FFI.make_shareable(case OS
123
125
  when /darwin/
124
126
  'dylib'
125
127
  when /linux|bsd|solaris/
@@ -129,9 +131,9 @@ module FFI
129
131
  else
130
132
  # Punt and just assume a sane unix (i.e. anything but AIX)
131
133
  'so'
132
- end
134
+ end)
133
135
 
134
- LIBC = if IS_WINDOWS
136
+ LIBC = FFI.make_shareable(if IS_WINDOWS
135
137
  crtname = RbConfig::CONFIG["RUBY_SO_NAME"][/msvc\w+/] || 'ucrtbase'
136
138
  "#{crtname}.dll"
137
139
  elsif IS_GNU
@@ -143,7 +145,7 @@ module FFI
143
145
  "msys-2.0.dll"
144
146
  else
145
147
  "#{LIBPREFIX}c.#{LIBSUFFIX}"
146
- end
148
+ end)
147
149
 
148
150
  LITTLE_ENDIAN = 1234 unless defined?(LITTLE_ENDIAN)
149
151
  BIG_ENDIAN = 4321 unless defined?(BIG_ENDIAN)
data/lib/ffi/struct.rb CHANGED
@@ -203,9 +203,10 @@ module FFI
203
203
  # :field3, :string
204
204
  # end
205
205
  def layout(*spec)
206
- warn "[DEPRECATION] Struct layout is already defined for class #{self.inspect}. Redefinition as in #{caller[0]} will be disallowed in ffi-2.0." if defined?(@layout)
207
206
  return @layout if spec.size == 0
208
207
 
208
+ warn "[DEPRECATION] Struct layout is already defined for class #{self.inspect}. Redefinition as in #{caller[0]} will be disallowed in ffi-2.0." if defined?(@layout)
209
+
209
210
  builder = StructLayoutBuilder.new
210
211
  builder.union = self < Union
211
212
  builder.packed = @packed if defined?(@packed)
@@ -80,8 +80,8 @@ module FFI
80
80
 
81
81
  class Mapped < Field
82
82
  def initialize(name, offset, type, orig_field)
83
- super(name, offset, type)
84
83
  @orig_field = orig_field
84
+ super(name, offset, type)
85
85
  end
86
86
 
87
87
  def get(ptr)
@@ -112,7 +112,7 @@ module FFI
112
112
  Type::FLOAT64,
113
113
  Type::LONGDOUBLE,
114
114
  Type::BOOL,
115
- ]
115
+ ].freeze
116
116
 
117
117
  # @param [String, Symbol] name name of the field
118
118
  # @param [Array, DataConverter, Struct, StructLayout::Field, Symbol, Type] type type of the field
@@ -105,9 +105,10 @@ module FFI
105
105
  # @return [nil]
106
106
  # @raise if a constant is missing and +:required+ was set to +true+ (see {#initialize})
107
107
  def calculate(options = {})
108
- binary = File.join Dir.tmpdir, "rb_const_gen_bin_#{Process.pid}"
108
+ binary_path = nil
109
109
 
110
110
  Tempfile.open("#{@prefix}.const_generator") do |f|
111
+ binary_path = f.path + ".bin"
111
112
  @includes.each do |inc|
112
113
  f.puts "#include <#{inc}>"
113
114
  end
@@ -125,7 +126,7 @@ module FFI
125
126
  f.flush
126
127
 
127
128
  cc = ENV['CC'] || 'gcc'
128
- output = `#{cc} #{options[:cppflags]} -D_DARWIN_USE_64_BIT_INODE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -x c -Wall -Werror #{f.path} -o #{binary} 2>&1`
129
+ output = `#{cc} #{options[:cppflags]} -D_DARWIN_USE_64_BIT_INODE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -x c -Wall -Werror #{f.path} -o #{binary_path} 2>&1`
129
130
 
130
131
  unless $?.success? then
131
132
  output = output.split("\n").map { |l| "\t#{l}" }.join "\n"
@@ -133,8 +134,8 @@ module FFI
133
134
  end
134
135
  end
135
136
 
136
- output = `#{binary}`
137
- File.unlink(binary + (FFI::Platform.windows? ? ".exe" : ""))
137
+ output = `#{binary_path}`
138
+ File.unlink(binary_path + (FFI::Platform.windows? ? ".exe" : ""))
138
139
  output.each_line do |line|
139
140
  line =~ /^(\S+)\s(.*)$/
140
141
  const = @constants[$1]
data/lib/ffi/types.rb CHANGED
@@ -33,12 +33,24 @@
33
33
  # see {file:README}
34
34
  module FFI
35
35
 
36
+ unless defined?(self.custom_typedefs)
37
+ # Truffleruby and JRuby don't support Ractor so far.
38
+ # So they don't need separation between builtin and custom types.
39
+ def self.custom_typedefs
40
+ TypeDefs
41
+ end
42
+ writable_typemap = true
43
+ end
44
+
36
45
  # @param [Type, DataConverter, Symbol] old type definition used by {FFI.find_type}
37
46
  # @param [Symbol] add new type definition's name to add
38
47
  # @return [Type]
39
48
  # Add a definition type to type definitions.
49
+ #
50
+ # The type definition is local per Ractor.
40
51
  def self.typedef(old, add)
41
- TypeDefs[add] = self.find_type(old)
52
+ tm = custom_typedefs
53
+ tm[add] = self.find_type(old)
42
54
  end
43
55
 
44
56
  # (see FFI.typedef)
@@ -46,6 +58,14 @@ module FFI
46
58
  typedef old, add
47
59
  end
48
60
 
61
+ class << self
62
+ private def __typedef(old, add)
63
+ TypeDefs[add] = self.find_type(old)
64
+ end
65
+
66
+ private :custom_typedefs
67
+ end
68
+
49
69
 
50
70
  # @param [Type, DataConverter, Symbol] name
51
71
  # @param [Hash] type_map if nil, {FFI::TypeDefs} is used
@@ -57,9 +77,12 @@ module FFI
57
77
  if name.is_a?(Type)
58
78
  name
59
79
 
60
- elsif type_map && type_map.has_key?(name)
80
+ elsif type_map&.has_key?(name)
61
81
  type_map[name]
62
82
 
83
+ elsif (tm=custom_typedefs).has_key?(name)
84
+ tm[name]
85
+
63
86
  elsif TypeDefs.has_key?(name)
64
87
  TypeDefs[name]
65
88
 
@@ -168,7 +191,7 @@ module FFI
168
191
  end
169
192
  end
170
193
 
171
- typedef(StrPtrConverter, :strptr)
194
+ __typedef(StrPtrConverter, :strptr)
172
195
 
173
196
  # @param type +type+ is an instance of class accepted by {FFI.find_type}
174
197
  # @return [Numeric]
@@ -184,11 +207,13 @@ module FFI
184
207
  f.each_line { |line|
185
208
  if line.index(prefix) == 0
186
209
  new_type, orig_type = line.chomp.slice(prefix.length..-1).split(/\s*=\s*/)
187
- typedef(orig_type.to_sym, new_type.to_sym)
210
+ __typedef(orig_type.to_sym, new_type.to_sym)
188
211
  end
189
212
  }
190
213
  end
191
- typedef :pointer, :caddr_t
214
+ __typedef :pointer, :caddr_t
192
215
  rescue Errno::ENOENT
193
216
  end
217
+
218
+ FFI.make_shareable(TypeDefs) unless writable_typemap
194
219
  end