File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -525,6 +525,17 @@ f! {
525
525
pub fn tcsendbreak( fd: :: c_int, duration: :: c_int) -> :: c_int {
526
526
ioctl( fd, TCSBRKP , duration as * mut :: c_void)
527
527
}
528
+ pub fn major( dev: :: dev_t) -> :: c_int {
529
+ ( ( dev >> 8 ) & 0xfff ) as :: c_int
530
+ }
531
+ pub fn minor( dev: :: dev_t) -> :: c_int {
532
+ ( ( dev & 0xff ) | ( ( dev >> 12 ) & 0xfff00 ) ) as :: c_int
533
+ }
534
+ pub fn makedev( ma: :: c_int, mi: :: c_int) -> :: dev_t {
535
+ let ma = ma as :: dev_t;
536
+ let mi = mi as :: dev_t;
537
+ ( ( ma & 0xfff ) << 8 ) | ( mi & 0xff ) | ( ( mi & 0xfff00 ) << 12 )
538
+ }
528
539
}
529
540
530
541
extern {
Original file line number Diff line number Diff line change @@ -475,6 +475,31 @@ f! {
475
475
pub fn CPU_EQUAL ( set1: & cpu_set_t, set2: & cpu_set_t) -> bool {
476
476
set1. bits == set2. bits
477
477
}
478
+
479
+ pub fn major( dev: :: dev_t) -> :: c_uint {
480
+ let mut major = 0 ;
481
+ major |= ( dev & 0x00000000000fff00 ) >> 8 ;
482
+ major |= ( dev & 0xfffff00000000000 ) >> 32 ;
483
+ major as :: c_uint
484
+ }
485
+
486
+ pub fn minor( dev: :: dev_t) -> :: c_uint {
487
+ let mut minor = 0 ;
488
+ minor |= ( dev & 0xfffff00000000000 ) >> 0 ;
489
+ minor |= ( dev & 0x00000ffffff00000 ) >> 12 ;
490
+ minor as :: c_uint
491
+ }
492
+
493
+ pub fn makedev( major: :: c_uint, minor: :: c_uint) -> :: dev_t {
494
+ let major = major as :: dev_t;
495
+ let minor = minor as :: dev_t;
496
+ let mut dev = 0 ;
497
+ dev |= ( major & 0x00000fff ) << 8 ;
498
+ dev |= ( major & 0xfffff000 ) << 32 ;
499
+ dev |= ( minor & 0x000000ff ) << 0 ;
500
+ dev |= ( minor & 0xffffff00 ) << 12 ;
501
+ dev
502
+ }
478
503
}
479
504
480
505
extern {
You can’t perform that action at this time.
0 commit comments