aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-m32r
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-m32r')
-rw-r--r--include/asm-m32r/Kbuild1
-rw-r--r--include/asm-m32r/hw_irq.h5
-rw-r--r--include/asm-m32r/page.h3
-rw-r--r--include/asm-m32r/pgtable-2level.h6
-rw-r--r--include/asm-m32r/pgtable.h4
-rw-r--r--include/asm-m32r/ptrace.h4
-rw-r--r--include/asm-m32r/signal.h3
-rw-r--r--include/asm-m32r/socket.h1
-rw-r--r--include/asm-m32r/spinlock.h9
-rw-r--r--include/asm-m32r/system.h9
-rw-r--r--include/asm-m32r/unistd.h9
-rw-r--r--include/asm-m32r/user.h1
12 files changed, 29 insertions, 26 deletions
diff --git a/include/asm-m32r/Kbuild b/include/asm-m32r/Kbuild
new file mode 100644
index 000000000000..c68e1680da01
--- /dev/null
+++ b/include/asm-m32r/Kbuild
@@ -0,0 +1 @@
include include/asm-generic/Kbuild.asm
diff --git a/include/asm-m32r/hw_irq.h b/include/asm-m32r/hw_irq.h
index 8d7e9d0e09e8..7138537cda03 100644
--- a/include/asm-m32r/hw_irq.h
+++ b/include/asm-m32r/hw_irq.h
@@ -1,9 +1,4 @@
1#ifndef _ASM_M32R_HW_IRQ_H 1#ifndef _ASM_M32R_HW_IRQ_H
2#define _ASM_M32R_HW_IRQ_H 2#define _ASM_M32R_HW_IRQ_H
3 3
4static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i)
5{
6 /* Nothing to do */
7}
8
9#endif /* _ASM_M32R_HW_IRQ_H */ 4#endif /* _ASM_M32R_HW_IRQ_H */
diff --git a/include/asm-m32r/page.h b/include/asm-m32r/page.h
index 9688be003620..404a4c24007b 100644
--- a/include/asm-m32r/page.h
+++ b/include/asm-m32r/page.h
@@ -87,10 +87,9 @@ typedef struct { unsigned long pgprot; } pgprot_t;
87 87
88#define devmem_is_allowed(x) 1 88#define devmem_is_allowed(x) 1
89 89
90#endif /* __KERNEL__ */
91
92#include <asm-generic/memory_model.h> 90#include <asm-generic/memory_model.h>
93#include <asm-generic/page.h> 91#include <asm-generic/page.h>
94 92
93#endif /* __KERNEL__ */
95#endif /* _ASM_M32R_PAGE_H */ 94#endif /* _ASM_M32R_PAGE_H */
96 95
diff --git a/include/asm-m32r/pgtable-2level.h b/include/asm-m32r/pgtable-2level.h
index be0f167e344a..6a674e3d37a2 100644
--- a/include/asm-m32r/pgtable-2level.h
+++ b/include/asm-m32r/pgtable-2level.h
@@ -52,9 +52,13 @@ static inline int pgd_present(pgd_t pgd) { return 1; }
52#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval) 52#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
53#define set_pgd(pgdptr, pgdval) (*(pgdptr) = pgdval) 53#define set_pgd(pgdptr, pgdval) (*(pgdptr) = pgdval)
54 54
55#define pgd_page(pgd) \ 55#define pgd_page_vaddr(pgd) \
56((unsigned long) __va(pgd_val(pgd) & PAGE_MASK)) 56((unsigned long) __va(pgd_val(pgd) & PAGE_MASK))
57 57
58#ifndef CONFIG_DISCONTIGMEM
59#define pgd_page(pgd) (mem_map + ((pgd_val(pgd) >> PAGE_SHIFT) - PFN_BASE))
60#endif /* !CONFIG_DISCONTIGMEM */
61
58static inline pmd_t *pmd_offset(pgd_t * dir, unsigned long address) 62static inline pmd_t *pmd_offset(pgd_t * dir, unsigned long address)
59{ 63{
60 return (pmd_t *) dir; 64 return (pmd_t *) dir;
diff --git a/include/asm-m32r/pgtable.h b/include/asm-m32r/pgtable.h
index 1983b7f4527a..1c15ba7ce319 100644
--- a/include/asm-m32r/pgtable.h
+++ b/include/asm-m32r/pgtable.h
@@ -336,7 +336,7 @@ static inline void pmd_set(pmd_t * pmdp, pte_t * ptep)
336 pmd_val(*pmdp) = (((unsigned long) ptep) & PAGE_MASK); 336 pmd_val(*pmdp) = (((unsigned long) ptep) & PAGE_MASK);
337} 337}
338 338
339#define pmd_page_kernel(pmd) \ 339#define pmd_page_vaddr(pmd) \
340 ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) 340 ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
341 341
342#ifndef CONFIG_DISCONTIGMEM 342#ifndef CONFIG_DISCONTIGMEM
@@ -358,7 +358,7 @@ static inline void pmd_set(pmd_t * pmdp, pte_t * ptep)
358#define pte_index(address) \ 358#define pte_index(address) \
359 (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) 359 (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
360#define pte_offset_kernel(dir, address) \ 360#define pte_offset_kernel(dir, address) \
361 ((pte_t *)pmd_page_kernel(*(dir)) + pte_index(address)) 361 ((pte_t *)pmd_page_vaddr(*(dir)) + pte_index(address))
362#define pte_offset_map(dir, address) \ 362#define pte_offset_map(dir, address) \
363 ((pte_t *)page_address(pmd_page(*(dir))) + pte_index(address)) 363 ((pte_t *)page_address(pmd_page(*(dir))) + pte_index(address))
364#define pte_offset_map_nested(dir, address) pte_offset_map(dir, address) 364#define pte_offset_map_nested(dir, address) pte_offset_map(dir, address)
diff --git a/include/asm-m32r/ptrace.h b/include/asm-m32r/ptrace.h
index a07fa90314d2..2d2a6c97331e 100644
--- a/include/asm-m32r/ptrace.h
+++ b/include/asm-m32r/ptrace.h
@@ -12,8 +12,6 @@
12 * Copyright (C) 2001-2002, 2004 Hirokazu Takata <takata at linux-m32r.org> 12 * Copyright (C) 2001-2002, 2004 Hirokazu Takata <takata at linux-m32r.org>
13 */ 13 */
14 14
15#include <asm/m32r.h> /* M32R_PSW_BSM, M32R_PSW_BPM */
16
17/* 0 - 13 are integer registers (general purpose registers). */ 15/* 0 - 13 are integer registers (general purpose registers). */
18#define PT_R4 0 16#define PT_R4 0
19#define PT_R5 1 17#define PT_R5 1
@@ -140,6 +138,8 @@ struct pt_regs {
140 138
141#ifdef __KERNEL__ 139#ifdef __KERNEL__
142 140
141#include <asm/m32r.h> /* M32R_PSW_BSM, M32R_PSW_BPM */
142
143#define __ARCH_SYS_PTRACE 1 143#define __ARCH_SYS_PTRACE 1
144 144
145#if defined(CONFIG_ISA_M32R2) || defined(CONFIG_CHIP_VDEC2) 145#if defined(CONFIG_ISA_M32R2) || defined(CONFIG_CHIP_VDEC2)
diff --git a/include/asm-m32r/signal.h b/include/asm-m32r/signal.h
index 95f69b191953..65423bed32b1 100644
--- a/include/asm-m32r/signal.h
+++ b/include/asm-m32r/signal.h
@@ -6,7 +6,6 @@
6/* orig : i386 2.4.18 */ 6/* orig : i386 2.4.18 */
7 7
8#include <linux/types.h> 8#include <linux/types.h>
9#include <linux/linkage.h>
10#include <linux/time.h> 9#include <linux/time.h>
11#include <linux/compiler.h> 10#include <linux/compiler.h>
12 11
@@ -81,7 +80,6 @@ typedef unsigned long sigset_t;
81 * SA_FLAGS values: 80 * SA_FLAGS values:
82 * 81 *
83 * SA_ONSTACK indicates that a registered stack_t will be used. 82 * SA_ONSTACK indicates that a registered stack_t will be used.
84 * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
85 * SA_RESTART flag to get restarting signals (which were the default long ago) 83 * SA_RESTART flag to get restarting signals (which were the default long ago)
86 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 84 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
87 * SA_RESETHAND clears the handler when the signal is delivered. 85 * SA_RESETHAND clears the handler when the signal is delivered.
@@ -101,7 +99,6 @@ typedef unsigned long sigset_t;
101 99
102#define SA_NOMASK SA_NODEFER 100#define SA_NOMASK SA_NODEFER
103#define SA_ONESHOT SA_RESETHAND 101#define SA_ONESHOT SA_RESETHAND
104#define SA_INTERRUPT 0x20000000 /* dummy -- ignored */
105 102
106#define SA_RESTORER 0x04000000 103#define SA_RESTORER 0x04000000
107 104
diff --git a/include/asm-m32r/socket.h b/include/asm-m32r/socket.h
index 8b6680f223c0..acdf748fcdc8 100644
--- a/include/asm-m32r/socket.h
+++ b/include/asm-m32r/socket.h
@@ -48,5 +48,6 @@
48#define SO_ACCEPTCONN 30 48#define SO_ACCEPTCONN 30
49 49
50#define SO_PEERSEC 31 50#define SO_PEERSEC 31
51#define SO_PASSSEC 34
51 52
52#endif /* _ASM_M32R_SOCKET_H */ 53#endif /* _ASM_M32R_SOCKET_H */
diff --git a/include/asm-m32r/spinlock.h b/include/asm-m32r/spinlock.h
index f94c1a673569..f9f90727a4a1 100644
--- a/include/asm-m32r/spinlock.h
+++ b/include/asm-m32r/spinlock.h
@@ -298,7 +298,14 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
298 ); 298 );
299} 299}
300 300
301#define __raw_read_trylock(lock) generic__raw_read_trylock(lock) 301static inline int __raw_read_trylock(raw_rwlock_t *lock)
302{
303 atomic_t *count = (atomic_t*)lock;
304 if (atomic_dec_return(count) >= 0)
305 return 1;
306 atomic_inc(count);
307 return 0;
308}
302 309
303static inline int __raw_write_trylock(raw_rwlock_t *lock) 310static inline int __raw_write_trylock(raw_rwlock_t *lock)
304{ 311{
diff --git a/include/asm-m32r/system.h b/include/asm-m32r/system.h
index 33567e8bfe6b..4ce0619f6989 100644
--- a/include/asm-m32r/system.h
+++ b/include/asm-m32r/system.h
@@ -18,7 +18,7 @@
18 * switch_to(prev, next) should switch from task `prev' to `next' 18 * switch_to(prev, next) should switch from task `prev' to `next'
19 * `prev' will never be the same as `next'. 19 * `prev' will never be the same as `next'.
20 * 20 *
21 * `next' and `prev' should be task_t, but it isn't always defined 21 * `next' and `prev' should be struct task_struct, but it isn't always defined
22 */ 22 */
23 23
24#define switch_to(prev, next, last) do { \ 24#define switch_to(prev, next, last) do { \
@@ -318,7 +318,7 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
318 * does not enforce ordering, since there is no data dependency between 318 * does not enforce ordering, since there is no data dependency between
319 * the read of "a" and the read of "b". Therefore, on some CPUs, such 319 * the read of "a" and the read of "b". Therefore, on some CPUs, such
320 * as Alpha, "y" could be set to 3 and "x" to 0. Use rmb() 320 * as Alpha, "y" could be set to 3 and "x" to 0. Use rmb()
321 * in cases like thiswhere there are no data dependencies. 321 * in cases like this where there are no data dependencies.
322 **/ 322 **/
323 323
324#define read_barrier_depends() do { } while (0) 324#define read_barrier_depends() do { } while (0)
@@ -328,16 +328,15 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
328#define smp_rmb() rmb() 328#define smp_rmb() rmb()
329#define smp_wmb() wmb() 329#define smp_wmb() wmb()
330#define smp_read_barrier_depends() read_barrier_depends() 330#define smp_read_barrier_depends() read_barrier_depends()
331#define set_mb(var, value) do { (void) xchg(&var, value); } while (0)
331#else 332#else
332#define smp_mb() barrier() 333#define smp_mb() barrier()
333#define smp_rmb() barrier() 334#define smp_rmb() barrier()
334#define smp_wmb() barrier() 335#define smp_wmb() barrier()
335#define smp_read_barrier_depends() do { } while (0) 336#define smp_read_barrier_depends() do { } while (0)
337#define set_mb(var, value) do { var = value; barrier(); } while (0)
336#endif 338#endif
337 339
338#define set_mb(var, value) do { xchg(&var, value); } while (0)
339#define set_wmb(var, value) do { var = value; wmb(); } while (0)
340
341#define arch_align_stack(x) (x) 340#define arch_align_stack(x) (x)
342 341
343#endif /* _ASM_M32R_SYSTEM_H */ 342#endif /* _ASM_M32R_SYSTEM_H */
diff --git a/include/asm-m32r/unistd.h b/include/asm-m32r/unistd.h
index cc31790d8077..5c6a9ac6cf1a 100644
--- a/include/asm-m32r/unistd.h
+++ b/include/asm-m32r/unistd.h
@@ -3,8 +3,6 @@
3 3
4/* $Id$ */ 4/* $Id$ */
5 5
6#include <asm/syscall.h> /* SYSCALL_* */
7
8/* 6/*
9 * This file contains the system call numbers. 7 * This file contains the system call numbers.
10 */ 8 */
@@ -298,14 +296,17 @@
298#ifdef __KERNEL__ 296#ifdef __KERNEL__
299 297
300#define NR_syscalls 285 298#define NR_syscalls 285
299#include <linux/err.h>
301 300
302/* user-visible error numbers are in the range -1 - -124: see 301/* user-visible error numbers are in the range -1 - -MAX_ERRNO: see
303 * <asm-m32r/errno.h> 302 * <asm-m32r/errno.h>
304 */ 303 */
305 304
305#include <asm/syscall.h> /* SYSCALL_* */
306
306#define __syscall_return(type, res) \ 307#define __syscall_return(type, res) \
307do { \ 308do { \
308 if ((unsigned long)(res) >= (unsigned long)(-(124 + 1))) { \ 309 if ((unsigned long)(res) >= (unsigned long)(-MAX_ERRNO)) { \
309 /* Avoid using "res" which is declared to be in register r0; \ 310 /* Avoid using "res" which is declared to be in register r0; \
310 errno might expand to a function call and clobber it. */ \ 311 errno might expand to a function call and clobber it. */ \
311 int __err = -(res); \ 312 int __err = -(res); \
diff --git a/include/asm-m32r/user.h b/include/asm-m32r/user.h
index 2ffd0c65a782..1ad4ded8483b 100644
--- a/include/asm-m32r/user.h
+++ b/include/asm-m32r/user.h
@@ -8,7 +8,6 @@
8 */ 8 */
9 9
10#include <linux/types.h> 10#include <linux/types.h>
11#include <asm/processor.h>
12#include <asm/ptrace.h> 11#include <asm/ptrace.h>
13#include <asm/page.h> 12#include <asm/page.h>
14 13