@@ -744,46 +744,58 @@ f! {
744744 let minor = minor as :: dev_t;
745745 let mut dev = 0 ;
746746 dev |= ( major & 0x00000fff ) << 8 ;
747- dev |= ( major & 0xfffff000 ) << 31 << 1 ; // avoid exceeding_bitshifts
747+ dev |= ( major & 0xfffff000 ) << 31 << 1 ; // allow exceeding_bitshifts
748748 dev |= ( minor & 0x000000ff ) << 0 ;
749749 dev |= ( minor & 0xffffff00 ) << 12 ;
750750 dev
751751 }
752- }
753752
754- cfg_if ! {
755- if #[ cfg( target_os = "emscripten" ) ] {
756- f! {
757- pub fn major( dev: :: dev_t) -> :: c_uint {
758- let mut major = 0 ;
759- major |= ( dev & 0x00000fff ) >> 8 ;
760- major |= ( dev & 0xfffff000 ) >> 31 >> 1 ; // avoid exceeding_bitshifts
761- major as :: c_uint
762- }
763-
764- pub fn minor( dev: :: dev_t) -> :: c_uint {
765- let mut minor = 0 ;
766- minor |= ( dev & 0x000000ff ) >> 0 ;
767- minor |= ( dev & 0xffffff00 ) >> 12 ;
768- minor as :: c_uint
769- }
770- }
771- } else {
772- f! {
773- pub fn major( dev: :: dev_t) -> :: c_uint {
774- let mut major = 0 ;
775- major |= ( dev & 0x00000000000fff00 ) >> 8 ;
776- major |= ( dev & 0xfffff00000000000 ) >> 32 ;
777- major as :: c_uint
753+ pub fn major( dev: :: dev_t) -> :: c_uint {
754+ cfg_if! {
755+ if #[ cfg( target_os = "emscripten" ) ] {
756+ // see
757+ // https://github.com/kripken/emscripten/blob/
758+ // master/system/include/libc/sys/sysmacros.h
759+ fn inner( dev: :: dev_t) -> :: c_uint {
760+ let mut major = 0 ;
761+ major |= ( dev & 0x00000fff ) >> 8 ;
762+ major |= ( dev & 0xfffff000 ) >> 31 >> 1 ;
763+ major as :: c_uint
764+ }
765+ } else {
766+ fn inner( dev: :: dev_t) -> :: c_uint {
767+ let mut major = 0 ;
768+ major |= ( dev & 0x00000000000fff00 ) >> 8 ;
769+ major |= ( dev & 0xfffff00000000000 ) >> 32 ;
770+ major as :: c_uint
771+ }
778772 }
773+ } ;
774+ inner( dev)
775+ }
779776
780- pub fn minor( dev: :: dev_t) -> :: c_uint {
781- let mut minor = 0 ;
782- minor |= ( dev & 0xfffff00000000000 ) >> 0 ;
783- minor |= ( dev & 0x00000ffffff00000 ) >> 12 ;
784- minor as :: c_uint
777+ pub fn minor( dev: :: dev_t) -> :: c_uint {
778+ cfg_if! {
779+ if #[ cfg( target_os = "emscripten" ) ] {
780+ // see
781+ // https://github.com/kripken/emscripten/blob/
782+ // master/system/include/libc/sys/sysmacros.h
783+ fn inner( dev: :: dev_t) -> :: c_uint {
784+ let mut minor = 0 ;
785+ minor |= ( dev & 0x000000ff ) >> 0 ;
786+ minor |= ( dev & 0xffffff00 ) >> 12 ;
787+ minor as :: c_uint
788+ }
789+ } else {
790+ fn inner( dev: :: dev_t) -> :: c_uint {
791+ let mut minor = 0 ;
792+ minor |= ( dev & 0xfffff00000000000 ) >> 0 ;
793+ minor |= ( dev & 0x00000ffffff00000 ) >> 12 ;
794+ minor as :: c_uint
795+ }
785796 }
786- }
797+ } ;
798+ inner( dev)
787799 }
788800}
789801
0 commit comments