1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)] 2 #[link(name = "windows")] 3 extern "system" {} 4 pub const GUID_DEVINTERFACE_PWM_CONTROLLER: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 1619151692, data2: 61137, data3: 19612, data4: [180, 156, 27, 150, 20, 97, 168, 25] }; 5 pub const IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD: u32 = 262148u32; 6 pub const IOCTL_PWM_CONTROLLER_GET_INFO: u32 = 262144u32; 7 pub const IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD: u32 = 294920u32; 8 pub const IOCTL_PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE: u32 = 262544u32; 9 pub const IOCTL_PWM_PIN_GET_POLARITY: u32 = 262552u32; 10 pub const IOCTL_PWM_PIN_IS_STARTED: u32 = 262568u32; 11 pub const IOCTL_PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE: u32 = 295316u32; 12 pub const IOCTL_PWM_PIN_SET_POLARITY: u32 = 295324u32; 13 pub const IOCTL_PWM_PIN_START: u32 = 295331u32; 14 pub const IOCTL_PWM_PIN_STOP: u32 = 295335u32; 15 #[repr(C)] 16 pub struct PWM_CONTROLLER_GET_ACTUAL_PERIOD_OUTPUT { 17 pub ActualPeriod: u64, 18 } 19 impl ::core::marker::Copy for PWM_CONTROLLER_GET_ACTUAL_PERIOD_OUTPUT {} 20 impl ::core::clone::Clone for PWM_CONTROLLER_GET_ACTUAL_PERIOD_OUTPUT { clone(&self) -> Self21 fn clone(&self) -> Self { 22 *self 23 } 24 } 25 #[repr(C)] 26 pub struct PWM_CONTROLLER_INFO { 27 pub Size: usize, 28 pub PinCount: u32, 29 pub MinimumPeriod: u64, 30 pub MaximumPeriod: u64, 31 } 32 impl ::core::marker::Copy for PWM_CONTROLLER_INFO {} 33 impl ::core::clone::Clone for PWM_CONTROLLER_INFO { clone(&self) -> Self34 fn clone(&self) -> Self { 35 *self 36 } 37 } 38 #[repr(C)] 39 pub struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT { 40 pub DesiredPeriod: u64, 41 } 42 impl ::core::marker::Copy for PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT {} 43 impl ::core::clone::Clone for PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT { clone(&self) -> Self44 fn clone(&self) -> Self { 45 *self 46 } 47 } 48 #[repr(C)] 49 pub struct PWM_CONTROLLER_SET_DESIRED_PERIOD_OUTPUT { 50 pub ActualPeriod: u64, 51 } 52 impl ::core::marker::Copy for PWM_CONTROLLER_SET_DESIRED_PERIOD_OUTPUT {} 53 impl ::core::clone::Clone for PWM_CONTROLLER_SET_DESIRED_PERIOD_OUTPUT { clone(&self) -> Self54 fn clone(&self) -> Self { 55 *self 56 } 57 } 58 pub const PWM_IOCTL_ID_CONTROLLER_GET_ACTUAL_PERIOD: i32 = 1i32; 59 pub const PWM_IOCTL_ID_CONTROLLER_GET_INFO: i32 = 0i32; 60 pub const PWM_IOCTL_ID_CONTROLLER_SET_DESIRED_PERIOD: i32 = 2i32; 61 pub const PWM_IOCTL_ID_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE: i32 = 100i32; 62 pub const PWM_IOCTL_ID_PIN_GET_POLARITY: i32 = 102i32; 63 pub const PWM_IOCTL_ID_PIN_IS_STARTED: i32 = 106i32; 64 pub const PWM_IOCTL_ID_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE: i32 = 101i32; 65 pub const PWM_IOCTL_ID_PIN_SET_POLARITY: i32 = 103i32; 66 pub const PWM_IOCTL_ID_PIN_START: i32 = 104i32; 67 pub const PWM_IOCTL_ID_PIN_STOP: i32 = 105i32; 68 #[repr(C)] 69 pub struct PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE_OUTPUT { 70 pub Percentage: u64, 71 } 72 impl ::core::marker::Copy for PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE_OUTPUT {} 73 impl ::core::clone::Clone for PWM_PIN_GET_ACTIVE_DUTY_CYCLE_PERCENTAGE_OUTPUT { clone(&self) -> Self74 fn clone(&self) -> Self { 75 *self 76 } 77 } 78 #[repr(C)] 79 pub struct PWM_PIN_GET_POLARITY_OUTPUT { 80 pub Polarity: PWM_POLARITY, 81 } 82 impl ::core::marker::Copy for PWM_PIN_GET_POLARITY_OUTPUT {} 83 impl ::core::clone::Clone for PWM_PIN_GET_POLARITY_OUTPUT { clone(&self) -> Self84 fn clone(&self) -> Self { 85 *self 86 } 87 } 88 #[repr(C)] 89 #[cfg(feature = "Win32_Foundation")] 90 pub struct PWM_PIN_IS_STARTED_OUTPUT { 91 pub IsStarted: super::super::Foundation::BOOLEAN, 92 } 93 #[cfg(feature = "Win32_Foundation")] 94 impl ::core::marker::Copy for PWM_PIN_IS_STARTED_OUTPUT {} 95 #[cfg(feature = "Win32_Foundation")] 96 impl ::core::clone::Clone for PWM_PIN_IS_STARTED_OUTPUT { clone(&self) -> Self97 fn clone(&self) -> Self { 98 *self 99 } 100 } 101 #[repr(C)] 102 pub struct PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE_INPUT { 103 pub Percentage: u64, 104 } 105 impl ::core::marker::Copy for PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE_INPUT {} 106 impl ::core::clone::Clone for PWM_PIN_SET_ACTIVE_DUTY_CYCLE_PERCENTAGE_INPUT { clone(&self) -> Self107 fn clone(&self) -> Self { 108 *self 109 } 110 } 111 #[repr(C)] 112 pub struct PWM_PIN_SET_POLARITY_INPUT { 113 pub Polarity: PWM_POLARITY, 114 } 115 impl ::core::marker::Copy for PWM_PIN_SET_POLARITY_INPUT {} 116 impl ::core::clone::Clone for PWM_PIN_SET_POLARITY_INPUT { clone(&self) -> Self117 fn clone(&self) -> Self { 118 *self 119 } 120 } 121 pub type PWM_POLARITY = i32; 122 pub const PWM_ACTIVE_HIGH: PWM_POLARITY = 0i32; 123 pub const PWM_ACTIVE_LOW: PWM_POLARITY = 1i32; 124