hidraw-sys 0.0.2

Linux hidraw definitions from `linux/hidraw.h`.
Documentation
#![allow(clippy::missing_safety_doc, non_camel_case_types, non_snake_case)]
#![cfg(any(target_os = "android", target_os = "linux"))]
#![no_std]

extern crate ioctl_macro as ioctl;

use self::__private::{__s16, __u32, __u8};
#[cfg(feature = "wrappers")]
pub use self::wrappers::*;

#[doc(hidden)]
pub mod __private {
	pub use ioctl::{_IOC, _IOC_READ, _IOC_WRITE, _IOR};

	pub type __s16 = core::ffi::c_short;
	pub type __u8 = core::ffi::c_uchar;
	pub type __u32 = core::ffi::c_uint;
}
#[cfg(feature = "wrappers")]
mod wrappers;

const HID_MAX_DESCRIPTOR_SIZE: usize = 4096;

#[cfg_attr(feature = "extra_traits", derive(Clone, Copy, Debug, Eq, Hash, PartialEq))]
#[cfg_attr(not(feature = "extra_traits"), derive(Clone, Copy))]
#[repr(C)]
pub struct hidraw_report_descriptor {
	pub size: __u32,
	pub value: [__u8; HID_MAX_DESCRIPTOR_SIZE],
}

#[cfg_attr(feature = "extra_traits", derive(Clone, Copy, Debug, Eq, Hash, PartialEq))]
#[cfg_attr(not(feature = "extra_traits"), derive(Clone, Copy))]
#[repr(C)]
pub struct hidraw_devinfo {
	pub bustype: __u32,
	pub vendor: __s16,
	pub product: __s16,
}

#[macro_export]
macro_rules! HIDIOCGRDESCSIZE {
	() => {
		$crate::__private::_IOR!(b'H', 0x01, core::ffi::c_int)
	};
}
#[macro_export]
macro_rules! HIDIOCGRDESC {
	() => {
		$crate::__private::_IOR!(b'H', 0x02, $crate::hidraw_report_descriptor)
	};
}
#[macro_export]
macro_rules! HIDIOCGRAWINFO {
	() => {
		$crate::__private::_IOR!(b'H', 0x03, $crate::hidraw_devinfo)
	};
}
#[macro_export]
macro_rules! HIDIOCGRAWNAME {
	($len:expr) => {
		$crate::__private::_IOC!($crate::__private::_IOC_READ!(), b'H', 0x04, $len)
	};
}
#[macro_export]
macro_rules! HIDIOCGRAWPHYS {
	($len:expr) => {
		$crate::__private::_IOC!($crate::__private::_IOC_READ!(), b'H', 0x05, $len)
	};
}
#[macro_export]
macro_rules! HIDIOCSFEATURE {
	($len:expr) => {
		$crate::__private::_IOC!(
			$crate::__private::_IOC_WRITE!() | $crate::__private::_IOC_READ!(),
			b'H',
			0x06,
			$len
		)
	};
}
#[macro_export]
macro_rules! HIDIOCGFEATURE {
	($len:expr) => {
		$crate::__private::_IOC!(
			$crate::__private::_IOC_WRITE!() | $crate::__private::_IOC_READ!(),
			b'H',
			0x07,
			$len
		)
	};
}
#[macro_export]
macro_rules! HIDIOCGRAWUNIQ {
	($len:expr) => {
		$crate::__private::_IOC!($crate::__private::_IOC_READ!(), b'H', 0x08, $len)
	};
}
#[macro_export]
macro_rules! HIDIOCSINPUT {
	($len:expr) => {
		$crate::__private::_IOC!(
			$crate::__private::_IOC_WRITE!() | $crate::__private::_IOC_READ!(),
			b'H',
			0x09,
			$len
		)
	};
}
#[macro_export]
macro_rules! HIDIOCGINPUT {
	($len:expr) => {
		$crate::__private::_IOC!(
			$crate::__private::_IOC_WRITE!() | $crate::__private::_IOC_READ!(),
			b'H',
			0x0A,
			$len
		)
	};
}
#[macro_export]
macro_rules! HIDIOCSOUTPUT {
	($len:expr) => {
		$crate::__private::_IOC!(
			$crate::__private::_IOC_WRITE!() | $crate::__private::_IOC_READ!(),
			b'H',
			0x0B,
			$len
		)
	};
}
#[macro_export]
macro_rules! HIDIOCGOUTPUT {
	($len:expr) => {
		$crate::__private::_IOC!(
			$crate::__private::_IOC_WRITE!() | $crate::__private::_IOC_READ!(),
			b'H',
			0x0C,
			$len
		)
	};
}

#[macro_export]
macro_rules! HIDRAW_FIRST_MINOR {
	() => {
		0
	};
}
#[macro_export]
macro_rules! HIDRAW_MAX_DEVICES {
	() => {
		64
	};
}
#[macro_export]
macro_rules! HIDRAW_BUFFER_SIZE {
	() => {
		64
	};
}