@@ -19,6 +19,12 @@ pub type nfds_t = ::c_ulong;
1919pub type nl_item = :: c_int ;
2020pub type idtype_t = :: c_uint ;
2121
22+ pub type __u8 = :: c_uchar ;
23+ pub type __u16 = :: c_ushort ;
24+ pub type __s16 = :: c_short ;
25+ pub type __u32 = :: c_uint ;
26+ pub type __s32 = :: c_int ;
27+
2228pub enum fpos64_t { } // TODO: fill this out with a struct
2329
2430s ! {
@@ -231,6 +237,113 @@ s! {
231237 pub sem_op: :: c_short,
232238 pub sem_flg: :: c_short,
233239 }
240+
241+ pub struct input_event {
242+ pub time: :: timeval,
243+ pub type_: :: __u16,
244+ pub code: :: __u16,
245+ pub value: :: __s32,
246+ }
247+
248+ pub struct input_id {
249+ pub bustype: :: __u16,
250+ pub vendor: :: __u16,
251+ pub product: :: __u16,
252+ pub version: :: __u16,
253+ }
254+
255+ pub struct input_absinfo {
256+ pub value: :: __s32,
257+ pub minimum: :: __s32,
258+ pub maximum: :: __s32,
259+ pub fuzz: :: __s32,
260+ pub flat: :: __s32,
261+ pub resolution: :: __s32,
262+ }
263+
264+ pub struct input_keymap_entry {
265+ pub flags: :: __u8,
266+ pub len: :: __u8,
267+ pub index: :: __u16,
268+ pub keycode: :: __u32,
269+ pub scancode: [ :: __u8; 32 ] ,
270+ }
271+
272+ pub struct input_mask {
273+ pub type_: :: __u32,
274+ pub codes_size: :: __u32,
275+ pub codes_ptr: :: __u64,
276+ }
277+
278+ pub struct ff_replay {
279+ pub length: :: __u16,
280+ pub delay: :: __u16,
281+ }
282+
283+ pub struct ff_trigger {
284+ pub button: :: __u16,
285+ pub interval: :: __u16,
286+ }
287+
288+ pub struct ff_envelope {
289+ pub attack_length: :: __u16,
290+ pub attack_level: :: __u16,
291+ pub fade_length: :: __u16,
292+ pub fade_level: :: __u16,
293+ }
294+
295+ pub struct ff_constant_effect {
296+ pub level: :: __s16,
297+ pub envelope: ff_envelope,
298+ }
299+
300+ pub struct ff_ramp_effect {
301+ pub start_level: :: __s16,
302+ pub end_level: :: __s16,
303+ pub envelope: ff_envelope,
304+ }
305+
306+ pub struct ff_condition_effect {
307+ pub right_saturation: :: __u16,
308+ pub left_saturation: :: __u16,
309+
310+ pub right_coeff: :: __s16,
311+ pub left_coeff: :: __s16,
312+
313+ pub deadband: :: __u16,
314+ pub center: :: __s16,
315+ }
316+
317+ pub struct ff_periodic_effect {
318+ pub waveform: :: __u16,
319+ pub period: :: __u16,
320+ pub magnitude: :: __s16,
321+ pub offset: :: __s16,
322+ pub phase: :: __u16,
323+
324+ pub envelope: ff_envelope,
325+
326+ pub custom_len: :: __u32,
327+ pub custom_data: * mut :: __s16,
328+ }
329+
330+ pub struct ff_rumble_effect {
331+ pub strong_magnitude: :: __u16,
332+ pub weak_magnitude: :: __u16,
333+ }
334+
335+ pub struct ff_effect {
336+ pub type_: :: __u16,
337+ pub id: :: __s16,
338+ pub direction: :: __u16,
339+ pub trigger: ff_trigger,
340+ pub replay: ff_replay,
341+ // FIXME this is actually a union
342+ #[ cfg( target_pointer_width = "64" ) ]
343+ pub u: [ u64 ; 4 ] ,
344+ #[ cfg( target_pointer_width = "32" ) ]
345+ pub u: [ u32 ; 7 ] ,
346+ }
234347}
235348
236349pub const ABDAY_1 : :: nl_item = 0x20000 ;
0 commit comments