@@ -1877,6 +1877,7 @@ fn test_freebsd(target: &str) {
1877
1877
"sys/vmmeter.h" ,
1878
1878
"sys/wait.h" ,
1879
1879
"libprocstat.h" ,
1880
+ "devstat.h" ,
1880
1881
"syslog.h" ,
1881
1882
"termios.h" ,
1882
1883
"time.h" ,
@@ -1890,8 +1891,19 @@ fn test_freebsd(target: &str) {
1890
1891
cfg. type_name ( move |ty, is_struct, is_union| {
1891
1892
match ty {
1892
1893
// Just pass all these through, no need for a "struct" prefix
1893
- "FILE" | "fd_set" | "Dl_info" | "DIR" | "Elf32_Phdr" | "Elf64_Phdr"
1894
- | "Elf32_Auxinfo" | "Elf64_Auxinfo" => ty. to_string ( ) ,
1894
+ "FILE"
1895
+ | "fd_set"
1896
+ | "Dl_info"
1897
+ | "DIR"
1898
+ | "Elf32_Phdr"
1899
+ | "Elf64_Phdr"
1900
+ | "Elf32_Auxinfo"
1901
+ | "Elf64_Auxinfo"
1902
+ | "devstat_select_mode"
1903
+ | "devstat_support_flags"
1904
+ | "devstat_type_flags"
1905
+ | "devstat_match_flags"
1906
+ | "devstat_priority" => ty. to_string ( ) ,
1895
1907
1896
1908
// FIXME: https://github.com/rust-lang/libc/issues/1273
1897
1909
"sighandler_t" => "sig_t" . to_string ( ) ,
@@ -1919,7 +1931,9 @@ fn test_freebsd(target: &str) {
1919
1931
}
1920
1932
// Field is named `type` in C but that is a Rust keyword,
1921
1933
// so these fields are translated to `type_` in the bindings.
1922
- "type_" if struct_ == "rtprio" || struct_ == "sockstat" => "type" . to_string ( ) ,
1934
+ "type_" if struct_ == "rtprio" => "type" . to_string ( ) ,
1935
+ "type_" if struct_ == "sockstat" => "type" . to_string ( ) ,
1936
+ "type_" if struct_ == "devstat_match_table" => "type" . to_string ( ) ,
1923
1937
s => s. to_string ( ) ,
1924
1938
}
1925
1939
} ) ;
@@ -2261,6 +2275,9 @@ fn test_freebsd(target: &str) {
2261
2275
( "if_data" , "__ifi_lastchange" ) => true ,
2262
2276
( "ifreq" , "ifr_ifru" ) => true ,
2263
2277
2278
+ // anonymous struct
2279
+ ( "devstat" , "dev_links" ) => true ,
2280
+
2264
2281
// FIXME: structs too complicated to bind for now...
2265
2282
( "kinfo_proc" , "ki_paddr" ) => true ,
2266
2283
( "kinfo_proc" , "ki_addr" ) => true ,
@@ -2278,6 +2295,11 @@ fn test_freebsd(target: &str) {
2278
2295
2279
2296
// `__sem_base` is a private struct field
2280
2297
( "semid_ds" , "__sem_base" ) => true ,
2298
+
2299
+ // `snap_time` is a `long double`, but it's a nightmare to bind correctly in rust
2300
+ // for the moment, so it's a best effort thing...
2301
+ ( "statinfo" , "snap_time" ) => true ,
2302
+
2281
2303
_ => false ,
2282
2304
}
2283
2305
} ) ;
0 commit comments