Commit df67602f authored by Benjamin Tissoires's avatar Benjamin Tissoires

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.orgSigned-off-by: default avatarBenjamin Tissoires <bentiss@kernel.org>
parent e342d6f6
...@@ -133,7 +133,7 @@ HID_BPF_CONFIG( ...@@ -133,7 +133,7 @@ HID_BPF_CONFIG(
* integer. We thus divide it by 30 to match what other joysticks are * integer. We thus divide it by 30 to match what other joysticks are
* doing * 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) 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 */); __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) ...@@ -152,7 +152,7 @@ int BPF_PROG(hid_fix_rdesc_raptor_mach_2, struct hid_bpf_ctx *hctx)
* divide it by 30. * divide it by 30.
* Byte 34 is always null, so it is ignored. * 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) 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 */); __u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 64 /* size */);
......
...@@ -30,7 +30,7 @@ HID_BPF_CONFIG( ...@@ -30,7 +30,7 @@ HID_BPF_CONFIG(
* pointer. * pointer.
*/ */
SEC("fmod_ret/hid_bpf_rdesc_fixup") SEC(HID_BPF_RDESC_FIXUP)
int BPF_PROG(hid_fix_rdesc, struct hid_bpf_ctx *hctx) int BPF_PROG(hid_fix_rdesc, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */); __u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
......
...@@ -191,7 +191,7 @@ static const __u8 fixed_rdesc[] = { ...@@ -191,7 +191,7 @@ static const __u8 fixed_rdesc[] = {
0xc0, // End Collection 327 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) 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 */); __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) ...@@ -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 * - if there was this out-of-proximity event, we are entering
* eraser mode, and we will until the next out-of-proximity. * 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) 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 */); __u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */);
......
...@@ -21,7 +21,7 @@ HID_BPF_CONFIG( ...@@ -21,7 +21,7 @@ HID_BPF_CONFIG(
* We just fix the report descriptor to enable those missing 7 buttons. * 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) int BPF_PROG(hid_fix_rdesc, struct hid_bpf_ctx *hctx)
{ {
const u8 offsets[] = {84, 112, 140}; const u8 offsets[] = {84, 112, 140};
......
...@@ -93,7 +93,7 @@ _Static_assert(sizeof(rdesc_assign_selection) == sizeof(fixed_rdesc_assign_selec ...@@ -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, _Static_assert(sizeof(rdesc_assign_selection) + OFFSET_ASSIGN_SELECTION < ORIGINAL_RDESC_SIZE,
"Rdesc at given offset is too big"); "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) int BPF_PROG(hid_fix_rdesc, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */); __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) ...@@ -101,7 +101,7 @@ static inline __u8 *get_u8(__u8 *data, unsigned int offset)
return (__u8 *)get_bits(data, 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) int BPF_PROG(artpen_pressure_interpolate, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, PEN_REPORT_LEN /* size */); __u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, PEN_REPORT_LEN /* size */);
......
...@@ -91,7 +91,7 @@ static const __u8 fixed_rdesc[] = { ...@@ -91,7 +91,7 @@ static const __u8 fixed_rdesc[] = {
#define U16(index) (data[index] | (data[index + 1] << 8)) #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) int BPF_PROG(hid_fix_rdesc_xppen_artist24, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */); __u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
...@@ -152,7 +152,7 @@ static __u8 prev_state = 0; ...@@ -152,7 +152,7 @@ static __u8 prev_state = 0;
* E: TipSwitch InRange * 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) int BPF_PROG(xppen_24_fix_eraser, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */); __u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */);
......
...@@ -82,7 +82,7 @@ static const __u8 fixed_rdesc[] = { ...@@ -82,7 +82,7 @@ static const __u8 fixed_rdesc[] = {
0xc0, // End Collection 112 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) int BPF_PROG(hid_fix_rdesc_xppen_artistpro16gen2, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */); __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) ...@@ -105,7 +105,7 @@ int BPF_PROG(hid_fix_rdesc_xppen_artistpro16gen2, struct hid_bpf_ctx *hctx)
return sizeof(fixed_rdesc); 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) int BPF_PROG(xppen_16_fix_eraser, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */); __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, ...@@ -207,7 +207,7 @@ static void compensate_coordinates_by_tilt(__u8 *data, const __u8 idx,
data[idx+1] = coords >> 8; 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) int BPF_PROG(xppen_16_fix_angle_offset, struct hid_bpf_ctx *hctx)
{ {
__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */); __u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 10 /* size */);
......
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
#ifndef ____HID_BPF__H #ifndef ____HID_BPF__H
#define ____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 { struct hid_bpf_probe_args {
unsigned int hid; unsigned int hid;
unsigned int rdesc_size; unsigned int rdesc_size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment