/* SPDX-License-Identifier: GPL-2.0-only */#ifndef _INPUT_COMPAT_H#define _INPUT_COMPAT_H/** 32bit compatibility wrappers for the input subsystem.** Very heavily based on evdev.c - Copyright (c) 1999-2002 Vojtech Pavlik*/#include <linux/compiler.h>#include <linux/compat.h>#include <linux/input.h>#ifdef CONFIG_COMPATstruct input_event_compat {compat_ulong_t sec;compat_ulong_t usec;__u16 type;__u16 code;__s32 value;};struct ff_periodic_effect_compat {__u16 waveform;__u16 period;__s16 magnitude;__s16 offset;__u16 phase;struct ff_envelope envelope;__u32 custom_len;compat_uptr_t custom_data;};struct ff_effect_compat {__u16 type;__s16 id;__u16 direction;struct ff_trigger trigger;struct ff_replay replay;union {struct ff_constant_effect constant;struct ff_ramp_effect ramp;struct ff_periodic_effect_compat periodic;struct ff_condition_effect condition[2]; /* One for each axis */struct ff_rumble_effect rumble;} u;};static inline size_t input_event_size(void){return (in_compat_syscall() && !COMPAT_USE_64BIT_TIME) ?sizeof(struct input_event_compat) : sizeof(struct input_event);}#elsestatic inline size_t input_event_size(void){return sizeof(struct input_event);}#endif /* CONFIG_COMPAT */int input_event_from_user(const char __user *buffer,struct input_event *event);int input_event_to_user(char __user *buffer,const struct input_event *event);int input_ff_effect_from_user(const char __user *buffer, size_t size,struct ff_effect *effect);#endif /* _INPUT_COMPAT_H */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。