Hi, This version uses table approach suggested by Johan. Handlers are registered on service init and unregistered on cleanup. Service id and opcode are used to select proper handler from tables. Handlers are declared with expected (or minimum) payload size and this is verified before calling proper handler. This only implement HAL library side to demonstrate use. If this approach is agreed on daemon patches will follow. Comments are welcome. -- BR Szymon Janc Szymon Janc (5): android: Add initial code for generic IPC msg handling android/hal-bluetooth: Use generic IPC message handling for events android/hal-hidhost: Use generic IPC message handling for events android/hal-pan: Use generic IPC message handling for events android/hal-a2dp: Use generic IPC message handling for events android/Android.mk | 2 + android/Makefile.am | 5 +- android/hal-a2dp.c | 41 ++++----- android/hal-bluetooth.c | 221 ++++++++++++++++++++++++++++++------------------ android/hal-hidhost.c | 76 ++++++++++------- android/hal-ipc.c | 45 ++-------- android/hal-msg.c | 94 ++++++++++++++++++++ android/hal-msg.h | 14 +++ android/hal-pan.c | 40 ++++----- android/hal.h | 4 - android/ipc.c | 1 + 11 files changed, 345 insertions(+), 198 deletions(-) create mode 100644 android/hal-msg.c -- 1.8.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html