HID: bpf: add defines for HID-BPF SEC in in-tree bpf fixes
We are going to switch over struct_ops, so instead of having to manually replace all fields one by one, let's have a common place to change it. Link: https://lore.kernel.org/r/20240608-hid_bpf_struct_ops-v3-6-6ac6ade58329@kernel.org Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
This commit is contained in:
parent
e342d6f6f7
commit
df67602fb8
@ -133,7 +133,7 @@ HID_BPF_CONFIG(
|
||||
* integer. We thus divide it by 30 to match what other joysticks are
|
||||
* doing
|
||||
*/
|
||||
SEC("fmod_ret/hid_bpf_rdesc_fixup")
|
||||
SEC(HID_BPF_RDESC_FIXUP)
|
||||
int BPF_PROG(hid_fix_rdesc_raptor_mach_2, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, HID_MAX_DESCRIPTOR_SIZE /* size */);
|
||||
@ -152,7 +152,7 @@ int BPF_PROG(hid_fix_rdesc_raptor_mach_2, struct hid_bpf_ctx *hctx)
|
||||
* divide it by 30.
|
||||
* Byte 34 is always null, so it is ignored.
|
||||
*/
|
||||
SEC("fmod_ret/hid_bpf_device_event")
|
||||
SEC(HID_BPF_DEVICE_EVENT)
|
||||
int BPF_PROG(raptor_mach_2_fix_hat_switch, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 64 /* size */);
|
||||
|
@ -30,7 +30,7 @@ HID_BPF_CONFIG(
|
||||
* pointer.
|
||||
*/
|
||||
|
||||
SEC("fmod_ret/hid_bpf_rdesc_fixup")
|
||||
SEC(HID_BPF_RDESC_FIXUP)
|
||||
int BPF_PROG(hid_fix_rdesc, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
|
||||
|
@ -191,7 +191,7 @@ static const __u8 fixed_rdesc[] = {
|
||||
0xc0, // End Collection 327
|
||||
};
|
||||
|
||||
SEC("fmod_ret/hid_bpf_rdesc_fixup")
|
||||
SEC(HID_BPF_RDESC_FIXUP)
|
||||
int BPF_PROG(hid_fix_rdesc_huion_kamvas_pro_19, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, HID_MAX_DESCRIPTOR_SIZE /* size */);
|
||||
@ -215,7 +215,7 @@ int BPF_PROG(hid_fix_rdesc_huion_kamvas_pro_19, struct hid_bpf_ctx *hctx)
|
||||
* - if there was this out-of-proximity event, we are entering
|
||||
* eraser mode, and we will until the next out-of-proximity.
|
||||
*/
|
||||
SEC("fmod_ret/hid_bpf_device_event")
|
||||
SEC(HID_BPF_DEVICE_EVENT)
|
||||
int BPF_PROG(kamvas_pro_19_fix_3rd_button, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */);
|
||||
|
@ -21,7 +21,7 @@ HID_BPF_CONFIG(
|
||||
* We just fix the report descriptor to enable those missing 7 buttons.
|
||||
*/
|
||||
|
||||
SEC("fmod_ret/hid_bpf_rdesc_fixup")
|
||||
SEC(HID_BPF_RDESC_FIXUP)
|
||||
int BPF_PROG(hid_fix_rdesc, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
const u8 offsets[] = {84, 112, 140};
|
||||
|
@ -93,7 +93,7 @@ _Static_assert(sizeof(rdesc_assign_selection) == sizeof(fixed_rdesc_assign_selec
|
||||
_Static_assert(sizeof(rdesc_assign_selection) + OFFSET_ASSIGN_SELECTION < ORIGINAL_RDESC_SIZE,
|
||||
"Rdesc at given offset is too big");
|
||||
|
||||
SEC("fmod_ret/hid_bpf_rdesc_fixup")
|
||||
SEC(HID_BPF_RDESC_FIXUP)
|
||||
int BPF_PROG(hid_fix_rdesc, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
|
||||
|
@ -101,7 +101,7 @@ static inline __u8 *get_u8(__u8 *data, unsigned int offset)
|
||||
return (__u8 *)get_bits(data, offset);
|
||||
}
|
||||
|
||||
SEC("fmod_ret/hid_bpf_device_event")
|
||||
SEC(HID_BPF_DEVICE_EVENT)
|
||||
int BPF_PROG(artpen_pressure_interpolate, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, PEN_REPORT_LEN /* size */);
|
||||
|
@ -91,7 +91,7 @@ static const __u8 fixed_rdesc[] = {
|
||||
|
||||
#define U16(index) (data[index] | (data[index + 1] << 8))
|
||||
|
||||
SEC("fmod_ret/hid_bpf_rdesc_fixup")
|
||||
SEC(HID_BPF_RDESC_FIXUP)
|
||||
int BPF_PROG(hid_fix_rdesc_xppen_artist24, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
|
||||
@ -152,7 +152,7 @@ static __u8 prev_state = 0;
|
||||
* E: TipSwitch InRange
|
||||
*
|
||||
*/
|
||||
SEC("fmod_ret/hid_bpf_device_event")
|
||||
SEC(HID_BPF_DEVICE_EVENT)
|
||||
int BPF_PROG(xppen_24_fix_eraser, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */);
|
||||
|
@ -82,7 +82,7 @@ static const __u8 fixed_rdesc[] = {
|
||||
0xc0, // End Collection 112
|
||||
};
|
||||
|
||||
SEC("fmod_ret/hid_bpf_rdesc_fixup")
|
||||
SEC(HID_BPF_RDESC_FIXUP)
|
||||
int BPF_PROG(hid_fix_rdesc_xppen_artistpro16gen2, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
|
||||
@ -105,7 +105,7 @@ int BPF_PROG(hid_fix_rdesc_xppen_artistpro16gen2, struct hid_bpf_ctx *hctx)
|
||||
return sizeof(fixed_rdesc);
|
||||
}
|
||||
|
||||
SEC("fmod_ret/hid_bpf_device_event")
|
||||
SEC(HID_BPF_DEVICE_EVENT)
|
||||
int BPF_PROG(xppen_16_fix_eraser, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */);
|
||||
@ -207,7 +207,7 @@ static void compensate_coordinates_by_tilt(__u8 *data, const __u8 idx,
|
||||
data[idx+1] = coords >> 8;
|
||||
}
|
||||
|
||||
SEC("fmod_ret/hid_bpf_device_event")
|
||||
SEC(HID_BPF_DEVICE_EVENT)
|
||||
int BPF_PROG(xppen_16_fix_angle_offset, struct hid_bpf_ctx *hctx)
|
||||
{
|
||||
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */);
|
||||
|
@ -5,6 +5,9 @@
|
||||
#ifndef ____HID_BPF__H
|
||||
#define ____HID_BPF__H
|
||||
|
||||
#define HID_BPF_DEVICE_EVENT "fmod_ret/hid_bpf_device_event"
|
||||
#define HID_BPF_RDESC_FIXUP "fmod_ret/hid_bpf_rdesc_fixup"
|
||||
|
||||
struct hid_bpf_probe_args {
|
||||
unsigned int hid;
|
||||
unsigned int rdesc_size;
|
||||
|
Loading…
Reference in New Issue
Block a user