|
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