Le Fri, 20 Jun 2014 16:36:58 +0530, Pranay Srivastava <pranjas@xxxxxxxxx> a écrit : > You say here you will define the function else where if TEST_FUNCTION > is defined > > > #ifdef TEST_FUNCTION > > void test(int *value); > > #else > > static inline void test(int *value) { } > > #endif > > > > test_ifdef.c: > > > > #include "test_ifdef.h" > > > But here you do on and define it any way. You must stick to the rule > you created earlier. If you are defining it here then this must also > be under the test of ifdef TEST_FUNCTION > > void test(int *value) > > { > > *value += 1; > > } > > Thank you Pranay for your answer. I understand this now. But when i look at the kernel code, i don't see ifdef test around the definition of the function. For example, i look for the function "hiddev_hid_event": In include/linux/hiddev.h: #ifdef CONFIG_USB_HIDDEV ... void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value); ... #else ... static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value) { } ... #endif In drivers/hid/usbhid/hiddev.c: /* * This is where hid.c calls into hiddev to pass an event that occurred over * the interrupt pipe */ void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value) { unsigned type = field->report_type; struct hiddev_usage_ref uref; uref.report_type = (type == HID_INPUT_REPORT) ? HID_REPORT_TYPE_INPUT : ((type == HID_OUTPUT_REPORT) ? HID_REPORT_TYPE_OUTPUT : ((type == HID_FEATURE_REPORT) ? HID_REPORT_TYPE_FEATURE : 0)); uref.report_id = field->report->id; uref.field_index = field->index; uref.usage_index = (usage - field->usage); uref.usage_code = usage->hid; uref.value = value; hiddev_send_event(hid, &uref); } EXPORT_SYMBOL_GPL(hiddev_hid_event); And in drivers/hid/hid-core.c: ... if (hid->claimed & HID_CLAIMED_INPUT) hidinput_hid_event(hid, field, usage, value); if (hid->claimed & HID_CLAIMED_HIDDEV && interrupt && hid->hiddev_hid_event) hid->hiddev_hid_event(hid, field, usage, value); ... If i'm right. The function "hiddev_hid_event" is always defined in "hiddev.c" whatever "CONFIG_USB_HIDDEV" is defined or not ? How is it possible ? _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies