forked from mirrors/linux
		
	[PATCH] extend the set of "__attribute__" shortcut macros
Extend the set of "__attribute__" shortcut macros, and remove identical (and now superfluous) definitions from a couple of source files. based on a page at robert love's blog: http://rlove.org/log/2005102601 extend the set of shortcut macros defined in compiler-gcc.h with the following: #define __packed __attribute__((packed)) #define __weak __attribute__((weak)) #define __naked __attribute__((naked)) #define __noreturn __attribute__((noreturn)) #define __pure __attribute__((pure)) #define __aligned(x) __attribute__((aligned(x))) #define __printf(a,b) __attribute__((format(printf,a,b))) Once these are in place, it's up to subsystem maintainers to decide if they want to take advantage of them. there is already a strong precedent for using shortcuts like this in the source tree. The ones that might give people pause are "__aligned" and "__printf", but shortcuts for both of those are already in use, and in some ways very confusingly. note the two very different definitions for a macro named "ALIGNED": drivers/net/sgiseeq.c:#define ALIGNED(x) ((((unsigned long)(x)) + 0xf) & ~(0xf)) drivers/scsi/ultrastor.c:#define ALIGNED(x) __attribute__((aligned(x))) also: include/acpi/platform/acgcc.h: #define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1))) Given the precedent, then, it seems logical to at least standardize on a consistent set of these macros. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Acked-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									e3e8a75d2a
								
							
						
					
					
						commit
						82ddcb0405
					
				
					 4 changed files with 7 additions and 6 deletions
				
			
		| 
						 | 
					@ -107,8 +107,6 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define __weak __attribute__((weak))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static char cache_panic[] __initdata = "Yeee, unsupported cache architecture.";
 | 
					static char cache_panic[] __initdata = "Yeee, unsupported cache architecture.";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void __init cpu_cache_init(void)
 | 
					void __init cpu_cache_init(void)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,8 +83,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*======== HFS structures as they appear on the disk ========*/
 | 
					/*======== HFS structures as they appear on the disk ========*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define __packed __attribute__ ((packed))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Pascal-style string of up to 31 characters */
 | 
					/* Pascal-style string of up to 31 characters */
 | 
				
			||||||
struct hfs_name {
 | 
					struct hfs_name {
 | 
				
			||||||
	u8 len;
 | 
						u8 len;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,8 +15,6 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <linux/types.h>
 | 
					#include <linux/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define __packed __attribute__ ((packed))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Some constants */
 | 
					/* Some constants */
 | 
				
			||||||
#define HFSPLUS_SECTOR_SIZE        512
 | 
					#define HFSPLUS_SECTOR_SIZE        512
 | 
				
			||||||
#define HFSPLUS_SECTOR_SHIFT         9
 | 
					#define HFSPLUS_SECTOR_SHIFT         9
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,6 +27,13 @@
 | 
				
			||||||
#define __inline__	__inline__	__attribute__((always_inline))
 | 
					#define __inline__	__inline__	__attribute__((always_inline))
 | 
				
			||||||
#define __inline	__inline	__attribute__((always_inline))
 | 
					#define __inline	__inline	__attribute__((always_inline))
 | 
				
			||||||
#define __deprecated			__attribute__((deprecated))
 | 
					#define __deprecated			__attribute__((deprecated))
 | 
				
			||||||
 | 
					#define __packed			__attribute__((packed))
 | 
				
			||||||
 | 
					#define __weak				__attribute__((weak))
 | 
				
			||||||
 | 
					#define __naked				__attribute__((naked))
 | 
				
			||||||
 | 
					#define __noreturn			__attribute__((noreturn))
 | 
				
			||||||
 | 
					#define __pure				__attribute__((pure))
 | 
				
			||||||
 | 
					#define __aligned(x)			__attribute__((aligned(x)))
 | 
				
			||||||
 | 
					#define __printf(a,b)			__attribute__((format(printf,a,b)))
 | 
				
			||||||
#define  noinline			__attribute__((noinline))
 | 
					#define  noinline			__attribute__((noinline))
 | 
				
			||||||
#define __attribute_pure__		__attribute__((pure))
 | 
					#define __attribute_pure__		__attribute__((pure))
 | 
				
			||||||
#define __attribute_const__		__attribute__((__const__))
 | 
					#define __attribute_const__		__attribute__((__const__))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue