Staging: speakup: Add helper macro for spk_synth boilerplate
authorVaishali Thakkar <vthakkar1994@gmail.com>
Wed, 18 Mar 2015 17:43:04 +0000 (23:13 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Mar 2015 12:27:13 +0000 (13:27 +0100)
For simple modules that contain a single spk_synth without
any additional setup code then ends up being a block of
duplicated boilerplate. This patch adds a new macro,
module_spk_synth(), which replaces the
module_init()/module_exit() registrations with template
functions.

Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/speakup/spk_types.h

index 8c565c94b8b25445242c34c4e1308925e1416194..55d6c9b3b4726e04101d2343abb32f7bbd1d653f 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/spinlock.h>
 #include <linux/mutex.h>
 #include <linux/io.h>          /* for inb_p, outb_p, inb, outb, etc... */
+#include <linux/device.h>
 
 enum var_type_t {
        VAR_NUM = 0,
@@ -179,6 +180,16 @@ struct spk_synth {
        struct attribute_group attributes;
 };
 
+/**
+ * module_spk_synth() - Helper macro for registering a speakup driver
+ * @__spk_synth: spk_synth struct
+ * Helper macro for speakup drivers which do not do anything special in module
+ * init/exit. This eliminates a lot of boilerplate. Each module may only
+ * use this macro once, and calling it replaces module_init() and module_exit()
+ */
+#define module_spk_synth(__spk_synth) \
+       module_driver(__spk_synth, synth_add, synth_remove)
+
 struct speakup_info_t {
        spinlock_t spinlock;
        int port_tts;