107 lines
		
	
	
	
		
			2.2 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			107 lines
		
	
	
	
		
			2.2 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
|   | /// Remove .owner field if calls are used which set it automatically | ||
|  | /// | ||
|  | // Confidence: High | ||
|  | // Copyright: (C) 2014 Wolfram Sang. GPL v2. | ||
|  | 
 | ||
|  | virtual patch | ||
|  | virtual context | ||
|  | virtual org | ||
|  | virtual report | ||
|  | 
 | ||
|  | @match1@ | ||
|  | declarer name module_platform_driver; | ||
|  | declarer name module_platform_driver_probe; | ||
|  | identifier __driver; | ||
|  | @@ | ||
|  | ( | ||
|  | 	module_platform_driver(__driver); | ||
|  | | | ||
|  | 	module_platform_driver_probe(__driver, ...); | ||
|  | ) | ||
|  | 
 | ||
|  | @fix1 depends on match1 && patch && !context && !org && !report@ | ||
|  | identifier match1.__driver; | ||
|  | @@ | ||
|  | 	static struct platform_driver __driver = { | ||
|  | 		.driver = { | ||
|  | -			.owner = THIS_MODULE, | ||
|  | 		} | ||
|  | 	}; | ||
|  | 
 | ||
|  | @match2@ | ||
|  | identifier __driver; | ||
|  | @@ | ||
|  | ( | ||
|  | 	platform_driver_register(&__driver) | ||
|  | | | ||
|  | 	platform_driver_probe(&__driver, ...) | ||
|  | | | ||
|  | 	platform_create_bundle(&__driver, ...) | ||
|  | ) | ||
|  | 
 | ||
|  | @fix2 depends on match2 && patch && !context && !org && !report@ | ||
|  | identifier match2.__driver; | ||
|  | @@ | ||
|  | 	static struct platform_driver __driver = { | ||
|  | 		.driver = { | ||
|  | -			.owner = THIS_MODULE, | ||
|  | 		} | ||
|  | 	}; | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------- | ||
|  | 
 | ||
|  | @fix1_context depends on match1 && !patch && (context || org || report)@ | ||
|  | identifier match1.__driver; | ||
|  | position j0; | ||
|  | @@ | ||
|  | 
 | ||
|  |  	static struct platform_driver __driver = { | ||
|  | 		.driver = { | ||
|  | *			.owner@j0 = THIS_MODULE, | ||
|  | 		} | ||
|  | 	}; | ||
|  | 
 | ||
|  | @fix2_context depends on match2 && !patch && (context || org || report)@ | ||
|  | identifier match2.__driver; | ||
|  | position j0; | ||
|  | @@ | ||
|  | 
 | ||
|  |  	static struct platform_driver __driver = { | ||
|  | 		.driver = { | ||
|  | *			.owner@j0 = THIS_MODULE, | ||
|  | 		} | ||
|  | 	}; | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------- | ||
|  | 
 | ||
|  | @script:python fix1_org depends on org@ | ||
|  | j0 << fix1_context.j0; | ||
|  | @@ | ||
|  | 
 | ||
|  | msg = "No need to set .owner here. The core will do it." | ||
|  | coccilib.org.print_todo(j0[0], msg) | ||
|  | 
 | ||
|  | @script:python fix2_org depends on org@ | ||
|  | j0 << fix2_context.j0; | ||
|  | @@ | ||
|  | 
 | ||
|  | msg = "No need to set .owner here. The core will do it." | ||
|  | coccilib.org.print_todo(j0[0], msg) | ||
|  | 
 | ||
|  | // ---------------------------------------------------------------------------- | ||
|  | 
 | ||
|  | @script:python fix1_report depends on report@ | ||
|  | j0 << fix1_context.j0; | ||
|  | @@ | ||
|  | 
 | ||
|  | msg = "No need to set .owner here. The core will do it." | ||
|  | coccilib.report.print_report(j0[0], msg) | ||
|  | 
 | ||
|  | @script:python fix2_report depends on report@ | ||
|  | j0 << fix2_context.j0; | ||
|  | @@ | ||
|  | 
 | ||
|  | msg = "No need to set .owner here. The core will do it." | ||
|  | coccilib.report.print_report(j0[0], msg) | ||
|  | 
 |