ffi 1.15.5-x86-mingw32 → 1.16.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
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