]>
 
 
www.infradead.org Git - users/jedix/linux-maple.git/commit 
 
 
 
 
 
 
module: add extra argument for parse_params() callback 
 
This adds an extra argument onto parse_params() to be used 
as a way to make the unused callback a bit more useful and 
generic by allowing the caller to pass on a data structure 
of its choice. An example use case is to allow us to easily 
make module parameters for every module which we will do 
next. 
 
@ parse @ 
identifier name, args, params, num, level_min, level_max; 
identifier unknown, param, val, doing; 
type s16; 
@@ 
 extern char *parse_args(const char *name, 
 			 char *args, 
 			 const struct kernel_param *params, 
 			 unsigned num, 
 			 s16 level_min, 
 			 s16 level_max, 
+			 void *arg, 
 			 int (*unknown)(char *param, char *val, 
					const char *doing 
+					, void *arg 
					)); 
 
@ parse_mod @ 
identifier name, args, params, num, level_min, level_max; 
identifier unknown, param, val, doing; 
type s16; 
@@ 
 char *parse_args(const char *name, 
 			 char *args, 
 			 const struct kernel_param *params, 
 			 unsigned num, 
 			 s16 level_min, 
 			 s16 level_max, 
+			 void *arg, 
 			 int (*unknown)(char *param, char *val, 
					const char *doing 
+					, void *arg 
					)) 
{ 
	... 
} 
 
@ parse_args_found @ 
expression R, E1, E2, E3, E4, E5, E6; 
identifier func; 
@@ 
 
( 
	R = 
	parse_args(E1, E2, E3, E4, E5, E6, 
+		   NULL, 
		   func); 
| 
	R = 
	parse_args(E1, E2, E3, E4, E5, E6, 
+		   NULL, 
		   &func); 
| 
	R = 
	parse_args(E1, E2, E3, E4, E5, E6, 
+		   NULL, 
		   NULL); 
| 
	parse_args(E1, E2, E3, E4, E5, E6, 
+		   NULL, 
		   func); 
| 
	parse_args(E1, E2, E3, E4, E5, E6, 
+		   NULL, 
		   &func); 
| 
	parse_args(E1, E2, E3, E4, E5, E6, 
+		   NULL, 
		   NULL); 
) 
 
@ parse_args_unused depends on parse_args_found @ 
identifier parse_args_found.func; 
@@ 
 
int func(char *param, char *val, const char *unused 
+		 , void *arg 
		 ) 
{ 
	... 
} 
 
@ mod_unused depends on parse_args_found @ 
identifier parse_args_found.func; 
expression A1, A2, A3; 
@@ 
 
-	func(A1, A2, A3); 
+	func(A1, A2, A3, NULL); 
 
Generated-by: Coccinelle SmPL  
Cc: cocci@systeme.lip6.fr  
Cc: Tejun Heo <tj@kernel.org>  
Cc: Arjan van de Ven <arjan@linux.intel.com>  
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>  
Cc: Rusty Russell <rusty@rustcorp.com.au>  
Cc: Christoph Hellwig <hch@infradead.org>  
Cc: Felipe Contreras <felipe.contreras@gmail.com>  
Cc: Ewan Milne <emilne@redhat.com>  
Cc: Jean Delvare <jdelvare@suse.de>  
Cc: Hannes Reinecke <hare@suse.de>  
Cc: Jani Nikula <jani.nikula@intel.com>  
Cc: linux-kernel@vger.kernel.org  
Reviewed-by: Tejun Heo <tj@kernel.org>  
Acked-by: Rusty Russell <rusty@rustcorp.com.au>  
Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>  
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>