@@ -272,6 +272,42 @@ s! {
272
272
pub piod_len: :: size_t,
273
273
}
274
274
275
+ // bpf.h
276
+
277
+ pub struct bpf_program {
278
+ pub bf_len: :: c_uint,
279
+ pub bf_insns: * mut bpf_insn,
280
+ }
281
+
282
+ pub struct bpf_stat {
283
+ pub bs_recv: :: c_uint,
284
+ pub bs_drop: :: c_uint,
285
+ }
286
+
287
+ pub struct bpf_version {
288
+ pub bv_major: :: c_ushort,
289
+ pub bv_minor: :: c_ushort,
290
+ }
291
+
292
+ pub struct bpf_hdr {
293
+ pub bh_tstamp: :: timeval,
294
+ pub bh_caplen: u32 ,
295
+ pub bh_datalen: u32 ,
296
+ pub bh_hdrlen: :: c_ushort,
297
+ }
298
+
299
+ pub struct bpf_insn {
300
+ pub code: :: c_ushort,
301
+ pub jt: :: c_uchar,
302
+ pub jf: :: c_uchar,
303
+ pub k: u32 ,
304
+ }
305
+
306
+ pub struct bpf_dltlist {
307
+ bfl_len: :: c_uint,
308
+ bfl_list: * mut :: c_uint,
309
+ }
310
+
275
311
// elf.h
276
312
277
313
pub struct Elf32_Phdr {
@@ -359,6 +395,14 @@ cfg_if! {
359
395
}
360
396
}
361
397
398
+ // Non-public helper constant
399
+ #[ cfg( all( not( libc_const_size_of) , target_pointer_width = "32" ) ) ]
400
+ const SIZEOF_LONG : usize = 4 ;
401
+ #[ cfg( all( not( libc_const_size_of) , target_pointer_width = "64" ) ) ]
402
+ const SIZEOF_LONG : usize = 8 ;
403
+ #[ cfg( libc_const_size_of) ]
404
+ const SIZEOF_LONG : usize = :: mem:: size_of :: < :: c_long > ( ) ;
405
+
362
406
#[ deprecated(
363
407
since = "0.2.64" ,
364
408
note = "Can vary at runtime. Use sysconf(3) instead"
@@ -1216,8 +1260,7 @@ pub const ONLRET: ::tcflag_t = 0x40;
1216
1260
pub const CMGROUP_MAX : usize = 16 ;
1217
1261
1218
1262
// https://github.com/freebsd/freebsd/blob/master/sys/net/bpf.h
1219
- // sizeof(long)
1220
- pub const BPF_ALIGNMENT : :: c_int = 8 ;
1263
+ pub const BPF_ALIGNMENT : usize = SIZEOF_LONG ;
1221
1264
1222
1265
// Values for rtprio struct (prio field) and syscall (function argument)
1223
1266
pub const RTP_PRIO_MIN : :: c_ushort = 0 ;
0 commit comments