diff options
| -rw-r--r-- | arch/x86/include/asm/proto.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/x86/include/asm/proto.h b/arch/x86/include/asm/proto.h index 49fb3ecf3bb3..621f56d73121 100644 --- a/arch/x86/include/asm/proto.h +++ b/arch/x86/include/asm/proto.h | |||
| @@ -22,7 +22,14 @@ extern int reboot_force; | |||
| 22 | 22 | ||
| 23 | long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); | 23 | long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); |
| 24 | 24 | ||
| 25 | #define round_up(x, y) (((x) + (y) - 1) & ~((y) - 1)) | 25 | /* |
| 26 | #define round_down(x, y) ((x) & ~((y) - 1)) | 26 | * This looks more complex than it should be. But we need to |
| 27 | * get the type for the ~ right in round_down (it needs to be | ||
| 28 | * as wide as the result!), and we want to evaluate the macro | ||
| 29 | * arguments just once each. | ||
| 30 | */ | ||
| 31 | #define __round_mask(x,y) ((__typeof__(x))((y)-1)) | ||
| 32 | #define round_up(x,y) ((((x)-1) | __round_mask(x,y))+1) | ||
| 33 | #define round_down(x,y) ((x) & ~__round_mask(x,y)) | ||
| 27 | 34 | ||
| 28 | #endif /* _ASM_X86_PROTO_H */ | 35 | #endif /* _ASM_X86_PROTO_H */ |
