|
22 | 22 | #define HID_REQ_SET_IDLE HID_REQ_SET_IDLE___not_used |
23 | 23 | #define HID_REQ_SET_PROTOCOL HID_REQ_SET_PROTOCOL___not_used |
24 | 24 |
|
| 25 | +/* do not define kfunc through vmlinux.h as this messes up our custom hack */ |
| 26 | +#define BPF_NO_KFUNC_PROTOTYPES |
| 27 | + |
25 | 28 | #include "vmlinux.h" |
26 | 29 |
|
27 | 30 | #undef hid_bpf_ctx |
@@ -91,31 +94,31 @@ struct hid_bpf_ops { |
91 | 94 | /* following are kfuncs exported by HID for HID-BPF */ |
92 | 95 | extern __u8 *hid_bpf_get_data(struct hid_bpf_ctx *ctx, |
93 | 96 | unsigned int offset, |
94 | | - const size_t __sz) __ksym; |
95 | | -extern struct hid_bpf_ctx *hid_bpf_allocate_context(unsigned int hid_id) __ksym; |
96 | | -extern void hid_bpf_release_context(struct hid_bpf_ctx *ctx) __ksym; |
| 97 | + const size_t __sz) __weak __ksym; |
| 98 | +extern struct hid_bpf_ctx *hid_bpf_allocate_context(unsigned int hid_id) __weak __ksym; |
| 99 | +extern void hid_bpf_release_context(struct hid_bpf_ctx *ctx) __weak __ksym; |
97 | 100 | extern int hid_bpf_hw_request(struct hid_bpf_ctx *ctx, |
98 | 101 | __u8 *data, |
99 | 102 | size_t buf__sz, |
100 | 103 | enum hid_report_type type, |
101 | | - enum hid_class_request reqtype) __ksym; |
| 104 | + enum hid_class_request reqtype) __weak __ksym; |
102 | 105 | extern int hid_bpf_hw_output_report(struct hid_bpf_ctx *ctx, |
103 | | - __u8 *buf, size_t buf__sz) __ksym; |
| 106 | + __u8 *buf, size_t buf__sz) __weak __ksym; |
104 | 107 | extern int hid_bpf_input_report(struct hid_bpf_ctx *ctx, |
105 | 108 | enum hid_report_type type, |
106 | 109 | __u8 *data, |
107 | | - size_t buf__sz) __ksym; |
| 110 | + size_t buf__sz) __weak __ksym; |
108 | 111 | extern int hid_bpf_try_input_report(struct hid_bpf_ctx *ctx, |
109 | 112 | enum hid_report_type type, |
110 | 113 | __u8 *data, |
111 | | - size_t buf__sz) __ksym; |
| 114 | + size_t buf__sz) __weak __ksym; |
112 | 115 |
|
113 | 116 | /* bpf_wq implementation */ |
114 | 117 | extern int bpf_wq_init(struct bpf_wq *wq, void *p__map, unsigned int flags) __weak __ksym; |
115 | 118 | extern int bpf_wq_start(struct bpf_wq *wq, unsigned int flags) __weak __ksym; |
116 | 119 | extern int bpf_wq_set_callback_impl(struct bpf_wq *wq, |
117 | 120 | int (callback_fn)(void *map, int *key, void *wq), |
118 | | - unsigned int flags__k, void *aux__ign) __ksym; |
| 121 | + unsigned int flags__k, void *aux__ign) __weak __ksym; |
119 | 122 | #define bpf_wq_set_callback(timer, cb, flags) \ |
120 | 123 | bpf_wq_set_callback_impl(timer, cb, flags, NULL) |
121 | 124 |
|
|
0 commit comments