Blob: plugin.h
Blob id: b484ed37874ee317b6ded672ed0e0346da7fd944
Size: 1.4 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | /* SPDX-License-Identifier: GPL-2.0-or-later */ /* * * BlueZ - Bluetooth protocol stack for Linux * * Copyright (C) 2004-2010 Marcel Holtmann <marcel@holtmann.org> * * */ #define BLUETOOTH_PLUGIN_PRIORITY_LOW -100 #define BLUETOOTH_PLUGIN_PRIORITY_DEFAULT 0 #define BLUETOOTH_PLUGIN_PRIORITY_HIGH 100 struct bluetooth_plugin_desc { const char *name; const char *version; int priority; int (*init) (void); void (*exit) (void); void *debug_start; void *debug_stop; }; #ifdef BLUETOOTH_PLUGIN_BUILTIN #define BLUETOOTH_PLUGIN_DEFINE(name, version, priority, init, exit) \ const struct bluetooth_plugin_desc \ __bluetooth_builtin_ ## name = { \ #name, version, priority, init, exit \ }; #else #if EXTERNAL_PLUGINS #define BLUETOOTH_PLUGIN_DEFINE(name, version, priority, init, exit) \ extern struct btd_debug_desc __start___debug[] \ __attribute__ ((weak, visibility("hidden"))); \ extern struct btd_debug_desc __stop___debug[] \ __attribute__ ((weak, visibility("hidden"))); \ extern const struct bluetooth_plugin_desc \ bluetooth_plugin_desc \ __attribute__ ((visibility("default"))); \ const struct bluetooth_plugin_desc bluetooth_plugin_desc = { \ #name, version, priority, init, exit, \ __start___debug, __stop___debug \ }; #else #error "Requested non built-in plugin, while external plugins is disabled" #endif #endif |