use super::*;
#[repr(C)]
struct Size1([u8; 1]);
#[repr(C)]
struct Size20([u8; 20]);
#[repr(C)]
struct SizeMax([u8; 8191]);
#[test]
fn test_ioctl_ccompat() {
assert_eq!(core::mem::size_of::<Size1>(), 1);
assert_eq!(core::mem::size_of::<Size20>(), 20);
assert_eq!(core::mem::size_of::<SizeMax>(), 8191);
assert_eq!(IOCPARM_MASK, 8191);
assert_eq!(IOCPARM_MAX, 8192);
assert_eq!(IOC_VOID, 536870912);
assert_eq!(IOC_OUT, 1073741824);
assert_eq!(IOC_IN, 2147483648);
assert_eq!(ioc(536870912, 0, 0, 0), 0x20000000);
assert_eq!(ioc(1073741824, 0, 0, 0), 0x40000000);
assert_eq!(ioc(2147483648, 0, 0, 0), 0x80000000);
assert_eq!(ioc(3221225472, 0, 0, 0), 0xc0000000);
assert_eq!(ioc(1073741824, 1, 1, 20), 0x40140101);
assert_eq!(ioc(1073741824, 0, 0, 8191), 0x5fff0000);
assert_eq!(ioc(1073741824, 0, 255, 0), 0x400000ff);
assert_eq!(ioc(1073741824, 0, 255, 8191), 0x5fff00ff);
assert_eq!(ioc(1073741824, 255, 0, 0), 0x4000ff00);
assert_eq!(ioc(1073741824, 255, 0, 8191), 0x5fffff00);
assert_eq!(ioc(1073741824, 255, 255, 0), 0x4000ffff);
assert_eq!(ioc(1073741824, 255, 255, 8191), 0x5fffffff);
assert_eq!(io(0, 0), 0x20000000);
assert_eq!(io(1, 1), 0x20000101);
assert_eq!(io(0, 255), 0x200000ff);
assert_eq!(io(255, 0), 0x2000ff00);
assert_eq!(io(255, 255), 0x2000ffff);
assert_eq!(ior::<Size1>(0, 0), 0x40010000, "Expected ior::<Size1>(0, 0) to equal 0x40010000");
assert_eq!(ior::<Size20>(1, 1), 0x40140101, "Expected ior::<Size20>(1, 1) to equal 0x40140101");
assert_eq!(ior::<SizeMax>(0, 0), 0x5fff0000, "Expected ior::<SizeMax>(0, 0) to equal 0x5fff0000");
assert_eq!(ior::<Size1>(0, 255), 0x400100ff, "Expected ior::<Size1>(0, 255) to equal 0x400100ff");
assert_eq!(ior::<SizeMax>(0, 255), 0x5fff00ff, "Expected ior::<SizeMax>(0, 255) to equal 0x5fff00ff");
assert_eq!(ior::<Size1>(255, 0), 0x4001ff00, "Expected ior::<Size1>(255, 0) to equal 0x4001ff00");
assert_eq!(ior::<SizeMax>(255, 0), 0x5fffff00, "Expected ior::<SizeMax>(255, 0) to equal 0x5fffff00");
assert_eq!(ior::<Size1>(255, 255), 0x4001ffff, "Expected ior::<Size1>(255, 255) to equal 0x4001ffff");
assert_eq!(ior::<SizeMax>(255, 255), 0x5fffffff, "Expected ior::<SizeMax>(255, 255) to equal 0x5fffffff");
assert_eq!(ior::<Size1>(0, 0), 0x40010000, "Expected ior::<Size1>(0, 0) to equal 0x40010000");
assert_eq!(ior::<Size20>(1, 1), 0x40140101, "Expected ior::<Size20>(1, 1) to equal 0x40140101");
assert_eq!(ior::<SizeMax>(0, 0), 0x5fff0000, "Expected ior::<SizeMax>(0, 0) to equal 0x5fff0000");
assert_eq!(ior::<Size1>(0, 255), 0x400100ff, "Expected ior::<Size1>(0, 255) to equal 0x400100ff");
assert_eq!(ior::<SizeMax>(0, 255), 0x5fff00ff, "Expected ior::<SizeMax>(0, 255) to equal 0x5fff00ff");
assert_eq!(ior::<Size1>(255, 0), 0x4001ff00, "Expected ior::<Size1>(255, 0) to equal 0x4001ff00");
assert_eq!(ior::<SizeMax>(255, 0), 0x5fffff00, "Expected ior::<SizeMax>(255, 0) to equal 0x5fffff00");
assert_eq!(ior::<Size1>(255, 255), 0x4001ffff, "Expected ior::<Size1>(255, 255) to equal 0x4001ffff");
assert_eq!(ior::<SizeMax>(255, 255), 0x5fffffff, "Expected ior::<SizeMax>(255, 255) to equal 0x5fffffff");
assert_eq!(ior::<Size1>(0, 0), 0x40010000, "Expected ior::<Size1>(0, 0) to equal 0x40010000");
assert_eq!(ior::<Size20>(1, 1), 0x40140101, "Expected ior::<Size20>(1, 1) to equal 0x40140101");
assert_eq!(ior::<SizeMax>(0, 0), 0x5fff0000, "Expected ior::<SizeMax>(0, 0) to equal 0x5fff0000");
assert_eq!(ior::<Size1>(0, 255), 0x400100ff, "Expected ior::<Size1>(0, 255) to equal 0x400100ff");
assert_eq!(ior::<SizeMax>(0, 255), 0x5fff00ff, "Expected ior::<SizeMax>(0, 255) to equal 0x5fff00ff");
assert_eq!(ior::<Size1>(255, 0), 0x4001ff00, "Expected ior::<Size1>(255, 0) to equal 0x4001ff00");
assert_eq!(ior::<SizeMax>(255, 0), 0x5fffff00, "Expected ior::<SizeMax>(255, 0) to equal 0x5fffff00");
assert_eq!(ior::<Size1>(255, 255), 0x4001ffff, "Expected ior::<Size1>(255, 255) to equal 0x4001ffff");
assert_eq!(ior::<SizeMax>(255, 255), 0x5fffffff, "Expected ior::<SizeMax>(255, 255) to equal 0x5fffffff");
}