Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1394610 > unrolled thread

[PATCH 3/4] rpmsg: add helper macro module_rpmsg_driver

Started by"Andrew F. Davis" <afd@ti.com>
First post2016-05-04 20:40 +0200
Last post2016-05-04 21:00 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 3/4] rpmsg: add helper macro module_rpmsg_driver "Andrew F. Davis" <afd@ti.com> - 2016-05-04 20:40 +0200
    Re: [PATCH 3/4] rpmsg: add helper macro module_rpmsg_driver "Andrew F. Davis" <afd@ti.com> - 2016-05-04 21:00 +0200
    Re: [PATCH 3/4] rpmsg: add helper macro module_rpmsg_driver Suman Anna <s-anna@ti.com> - 2016-05-04 21:00 +0200

#1394610 — [PATCH 3/4] rpmsg: add helper macro module_rpmsg_driver

From"Andrew F. Davis" <afd@ti.com>
Date2016-05-04 20:40 +0200
Subject[PATCH 3/4] rpmsg: add helper macro module_rpmsg_driver
Message-ID<rv9Si-Pg-17@gated-at.bofh.it>
This patch introduces the module_rpmsg_driver macro which is a
convenience macro for rpmsg driver modules similar to
module_platform_driver. It is intended to be used by drivers which
init/exit section does nothing but register/unregister the rpmsg driver.
By using this macro it is possible to eliminate a few lines of
boilerplate code per rpmsg driver.

Signed-off-by: Andrew F. Davis <afd@ti.com>
---
 include/linux/rpmsg.h | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h
index 78e45ce..ada50ff 100644
--- a/include/linux/rpmsg.h
+++ b/include/linux/rpmsg.h
@@ -177,13 +177,23 @@ struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_channel *,
 int
 rpmsg_send_offchannel_raw(struct rpmsg_channel *, u32, u32, void *, int, bool);
 
-/*
- * use a macro to avoid include chaining to get THIS_MODULE
- */
+/* use a macro to avoid include chaining to get THIS_MODULE */
 #define register_rpmsg_driver(drv) \
 	__register_rpmsg_driver(drv, THIS_MODULE)
 
 /**
+ * module_rpmsg_driver() - Helper macro for registering an rpmsg driver
+ * @__rpmsg_driver: rpmsg_driver struct
+ *
+ * Helper macro for rpmsg 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_rpmsg_driver(__rpmsg_driver) \
+	module_driver(__rpmsg_driver, register_rpmsg_driver, \
+			unregister_rpmsg_driver)
+
+/**
  * rpmsg_send() - send a message across to the remote processor
  * @rpdev: the rpmsg channel
  * @data: payload of message
-- 
2.8.2

[toc] | [next] | [standalone]


#1394630

From"Andrew F. Davis" <afd@ti.com>
Date2016-05-04 21:00 +0200
Message-ID<rvabE-Yb-9@gated-at.bofh.it>
In reply to#1394610
On 05/04/2016 01:54 PM, Suman Anna wrote:
> Hi Andrew,
> 
> On 05/04/2016 01:34 PM, Andrew F. Davis wrote:
>> This patch introduces the module_rpmsg_driver macro which is a
>> convenience macro for rpmsg driver modules similar to
>> module_platform_driver. It is intended to be used by drivers which
>> init/exit section does nothing but register/unregister the rpmsg driver.
>> By using this macro it is possible to eliminate a few lines of
>> boilerplate code per rpmsg driver.
>>
>> Signed-off-by: Andrew F. Davis <afd@ti.com>
>> ---
>>  include/linux/rpmsg.h | 16 +++++++++++++---
>>  1 file changed, 13 insertions(+), 3 deletions(-)
>>
>> diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h
>> index 78e45ce..ada50ff 100644
>> --- a/include/linux/rpmsg.h
>> +++ b/include/linux/rpmsg.h
>> @@ -177,13 +177,23 @@ struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_channel *,
>>  int
>>  rpmsg_send_offchannel_raw(struct rpmsg_channel *, u32, u32, void *, int, bool);
>>  
>> -/*
>> - * use a macro to avoid include chaining to get THIS_MODULE
>> - */
>> +/* use a macro to avoid include chaining to get THIS_MODULE */
> 
> This change does not belong to this patch, the modified lines were
> introduced in patch 1, so please correct it in that patch.
> 

Ahh, that's what I get for last minute rebasing before submission, will fix.

Thanks,
Andrew

> regards
> Suman
> 
>>  #define register_rpmsg_driver(drv) \
>>  	__register_rpmsg_driver(drv, THIS_MODULE)
>>  
>>  /**
>> + * module_rpmsg_driver() - Helper macro for registering an rpmsg driver
>> + * @__rpmsg_driver: rpmsg_driver struct
>> + *
>> + * Helper macro for rpmsg 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_rpmsg_driver(__rpmsg_driver) \
>> +	module_driver(__rpmsg_driver, register_rpmsg_driver, \
>> +			unregister_rpmsg_driver)
>> +
>> +/**
>>   * rpmsg_send() - send a message across to the remote processor
>>   * @rpdev: the rpmsg channel
>>   * @data: payload of message
>>
> 

[toc] | [prev] | [next] | [standalone]


#1394635

FromSuman Anna <s-anna@ti.com>
Date2016-05-04 21:00 +0200
Message-ID<rvabE-Yb-11@gated-at.bofh.it>
In reply to#1394610
Hi Andrew,

On 05/04/2016 01:34 PM, Andrew F. Davis wrote:
> This patch introduces the module_rpmsg_driver macro which is a
> convenience macro for rpmsg driver modules similar to
> module_platform_driver. It is intended to be used by drivers which
> init/exit section does nothing but register/unregister the rpmsg driver.
> By using this macro it is possible to eliminate a few lines of
> boilerplate code per rpmsg driver.
> 
> Signed-off-by: Andrew F. Davis <afd@ti.com>
> ---
>  include/linux/rpmsg.h | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h
> index 78e45ce..ada50ff 100644
> --- a/include/linux/rpmsg.h
> +++ b/include/linux/rpmsg.h
> @@ -177,13 +177,23 @@ struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_channel *,
>  int
>  rpmsg_send_offchannel_raw(struct rpmsg_channel *, u32, u32, void *, int, bool);
>  
> -/*
> - * use a macro to avoid include chaining to get THIS_MODULE
> - */
> +/* use a macro to avoid include chaining to get THIS_MODULE */

This change does not belong to this patch, the modified lines were
introduced in patch 1, so please correct it in that patch.

regards
Suman

>  #define register_rpmsg_driver(drv) \
>  	__register_rpmsg_driver(drv, THIS_MODULE)
>  
>  /**
> + * module_rpmsg_driver() - Helper macro for registering an rpmsg driver
> + * @__rpmsg_driver: rpmsg_driver struct
> + *
> + * Helper macro for rpmsg 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_rpmsg_driver(__rpmsg_driver) \
> +	module_driver(__rpmsg_driver, register_rpmsg_driver, \
> +			unregister_rpmsg_driver)
> +
> +/**
>   * rpmsg_send() - send a message across to the remote processor
>   * @rpdev: the rpmsg channel
>   * @data: payload of message
> 

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web