@@ -247,6 +247,17 @@ s_no_extra_traits! {
247
247
// Array length changed from 88 to 1024 in FreeBSD 12:
248
248
pub f_mntonname: [ :: c_char; 88 ] ,
249
249
}
250
+
251
+ pub struct vnstat {
252
+ pub vn_fileid: u64 ,
253
+ pub vn_size: u64 ,
254
+ pub vn_mntdir: * mut :: c_char,
255
+ pub vn_dev: u32 ,
256
+ pub vn_fsid: u32 ,
257
+ pub vn_type: :: c_int,
258
+ pub vn_mode: u16 ,
259
+ pub vn_devname: [ :: c_char; :: SPECNAMELEN as usize + 1 ] ,
260
+ }
250
261
}
251
262
252
263
cfg_if ! {
@@ -366,13 +377,62 @@ cfg_if! {
366
377
self . d_name[ ..self . d_namlen as _] . hash( state) ;
367
378
}
368
379
}
380
+
381
+ impl PartialEq for vnstat {
382
+ fn eq( & self , other: & vnstat) -> bool {
383
+ let self_vn_devname: & [ :: c_char] = & self . vn_devname;
384
+ let other_vn_devname: & [ :: c_char] = & other. vn_devname;
385
+
386
+ self . vn_fileid == other. vn_fileid &&
387
+ self . vn_size == other. vn_size &&
388
+ self . vn_mntdir == other. vn_mntdir &&
389
+ self . vn_dev == other. vn_dev &&
390
+ self . vn_fsid == other. vn_fsid &&
391
+ self . vn_type == other. vn_type &&
392
+ self . vn_mode == other. vn_mode &&
393
+ self_vn_devname == other_vn_devname
394
+ }
395
+ }
396
+ impl Eq for vnstat { }
397
+ impl :: fmt:: Debug for vnstat {
398
+ fn fmt( & self , f: & mut :: fmt:: Formatter ) -> :: fmt:: Result {
399
+ let self_vn_devname: & [ :: c_char] = & self . vn_devname;
400
+
401
+ f. debug_struct( "vnstat" )
402
+ . field( "vn_fileid" , & self . vn_fileid)
403
+ . field( "vn_size" , & self . vn_size)
404
+ . field( "vn_mntdir" , & self . vn_mntdir)
405
+ . field( "vn_dev" , & self . vn_dev)
406
+ . field( "vn_fsid" , & self . vn_fsid)
407
+ . field( "vn_type" , & self . vn_type)
408
+ . field( "vn_mode" , & self . vn_mode)
409
+ . field( "vn_devname" , & self_vn_devname)
410
+ . finish( )
411
+ }
412
+ }
413
+ impl :: hash:: Hash for vnstat {
414
+ fn hash<H : :: hash:: Hasher >( & self , state: & mut H ) {
415
+ let self_vn_devname: & [ :: c_char] = & self . vn_devname;
416
+
417
+ self . vn_fileid. hash( state) ;
418
+ self . vn_size. hash( state) ;
419
+ self . vn_mntdir. hash( state) ;
420
+ self . vn_dev. hash( state) ;
421
+ self . vn_fsid. hash( state) ;
422
+ self . vn_type. hash( state) ;
423
+ self . vn_mode. hash( state) ;
424
+ self_vn_devname. hash( state) ;
425
+ }
426
+ }
369
427
}
370
428
}
371
429
372
430
pub const ELAST : :: c_int = 96 ;
373
431
pub const RAND_MAX : :: c_int = 0x7fff_fffd ;
374
432
pub const KI_NSPARE_PTR : usize = 6 ;
375
433
pub const MINCORE_SUPER : :: c_int = 0x20 ;
434
+ /// max length of devicename
435
+ pub const SPECNAMELEN : :: c_int = 63 ;
376
436
377
437
extern "C" {
378
438
// Return type ::c_int was removed in FreeBSD 12
0 commit comments