@@ -6291,87 +6291,4 @@ expand_align!();
6291
6291
mod non_exhaustive;
6292
6292
pub use self :: non_exhaustive:: * ;
6293
6293
6294
- mod ioctl {
6295
- const _IOC_NRBITS: u32 = 8 ;
6296
- const _IOC_TYPEBITS: u32 = 8 ;
6297
-
6298
- // https://github.com/search?q=repo%3Atorvalds%2Flinux+%22%23define+_IOC_NONE%22&type=code
6299
- cfg_if ! {
6300
- if #[ cfg( any(
6301
- any( target_arch = "powerpc" , target_arch = "powerpc64" ) ,
6302
- any( target_arch = "sparc" , target_arch = "sparc64" ) ,
6303
- any( target_arch = "mips" , target_arch = "mips64" ) ,
6304
- ) ) ]
6305
- {
6306
- // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/powerpc/include/uapi/asm/ioctl.h
6307
- // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/sparc/include/uapi/asm/ioctl.h
6308
- // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/arch/mips/include/uapi/asm/ioctl.h
6309
-
6310
- const _IOC_SIZEBITS: u32 = 13 ;
6311
- const _IOC_DIRBITS: u32 = 3 ;
6312
-
6313
- const _IOC_NONE: u32 = 1 ;
6314
- const _IOC_READ: u32 = 2 ;
6315
- const _IOC_WRITE: u32 = 4 ;
6316
- } else {
6317
- // https://github.com/torvalds/linux/blob/b311c1b497e51a628aa89e7cb954481e5f9dced2/include/uapi/asm-generic/ioctl.h
6318
-
6319
- const _IOC_SIZEBITS: u32 = 14 ;
6320
- const _IOC_DIRBITS: u32 = 2 ;
6321
-
6322
- const _IOC_NONE: u32 = 0 ;
6323
- const _IOC_WRITE: u32 = 1 ;
6324
- const _IOC_READ: u32 = 2 ;
6325
- }
6326
- }
6327
-
6328
- const _IOC_NRMASK: u32 = ( 1 << _IOC_NRBITS) - 1 ;
6329
- const _IOC_TYPEMASK: u32 = ( 1 << _IOC_TYPEBITS) - 1 ;
6330
- const _IOC_SIZEMASK: u32 = ( 1 << _IOC_SIZEBITS) - 1 ;
6331
- const _IOC_DIRMASK: u32 = ( 1 << _IOC_DIRBITS) - 1 ;
6332
-
6333
- const _IOC_NRSHIFT: u32 = 0 ;
6334
- const _IOC_TYPESHIFT: u32 = _IOC_NRSHIFT + _IOC_NRBITS;
6335
- const _IOC_SIZESHIFT: u32 = _IOC_TYPESHIFT + _IOC_TYPEBITS;
6336
- const _IOC_DIRSHIFT: u32 = _IOC_SIZESHIFT + _IOC_SIZEBITS;
6337
-
6338
- // adopted from https://github.com/torvalds/linux/blob/8a696a29c6905594e4abf78eaafcb62165ac61f1/rust/kernel/ioctl.rs
6339
-
6340
- /// Build an ioctl number, analogous to the C macro of the same name.
6341
- #[ inline( always) ]
6342
- const fn _IOC ( dir : u32 , ty : u32 , nr : u32 , size : usize ) -> u32 {
6343
- debug_assert ! ( dir <= _IOC_DIRMASK) ;
6344
- debug_assert ! ( ty <= _IOC_TYPEMASK) ;
6345
- debug_assert ! ( nr <= _IOC_NRMASK) ;
6346
- debug_assert ! ( size <= ( _IOC_SIZEMASK as usize ) ) ;
6347
-
6348
- ( dir << _IOC_DIRSHIFT)
6349
- | ( ty << _IOC_TYPESHIFT)
6350
- | ( nr << _IOC_NRSHIFT)
6351
- | ( ( size as u32 ) << _IOC_SIZESHIFT)
6352
- }
6353
-
6354
- /// Build an ioctl number for an argumentless ioctl.
6355
- #[ inline( always) ]
6356
- pub const fn _IO ( ty : u32 , nr : u32 ) -> u32 {
6357
- _IOC ( _IOC_NONE, ty, nr, 0 )
6358
- }
6359
-
6360
- /// Build an ioctl number for an read-only ioctl.
6361
- #[ inline( always) ]
6362
- pub const fn _IOR < T > ( ty : u32 , nr : u32 ) -> u32 {
6363
- _IOC ( _IOC_READ, ty, nr, core:: mem:: size_of :: < T > ( ) )
6364
- }
6365
-
6366
- /// Build an ioctl number for an write-only ioctl.
6367
- #[ inline( always) ]
6368
- pub const fn _IOW < T > ( ty : u32 , nr : u32 ) -> u32 {
6369
- _IOC ( _IOC_WRITE, ty, nr, core:: mem:: size_of :: < T > ( ) )
6370
- }
6371
-
6372
- /// Build an ioctl number for a read-write ioctl.
6373
- #[ inline( always) ]
6374
- pub const fn _IOWR < T > ( ty : u32 , nr : u32 ) -> u32 {
6375
- _IOC ( _IOC_READ | _IOC_WRITE, ty, nr, core:: mem:: size_of :: < T > ( ) )
6376
- }
6377
- }
6294
+ mod ioctl;
0 commit comments