aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/asm-h8300/page.h4
-rw-r--r--include/asm-h8300/unistd.h282
2 files changed, 139 insertions, 147 deletions
diff --git a/include/asm-h8300/page.h b/include/asm-h8300/page.h
index 58b053f..e3b7960 100644
--- a/include/asm-h8300/page.h
+++ b/include/asm-h8300/page.h
@@ -79,7 +79,7 @@ extern unsigned long memory_end;
#ifndef __ASSEMBLY__
-#define __pa(vaddr) virt_to_phys((void *)vaddr)
+#define __pa(vaddr) virt_to_phys(vaddr)
#define __va(paddr) phys_to_virt((unsigned long)paddr)
#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT)
@@ -89,7 +89,7 @@ extern unsigned long memory_end;
#define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT))
#define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT))
#define page_to_virt(page) ((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)
-#define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
+#define pfn_valid(page) (page < max_mapnr)
#define pfn_to_page(pfn) virt_to_page(pfn_to_virt(pfn))
#define page_to_pfn(page) virt_to_pfn(page_to_virt(page))
diff --git a/include/asm-h8300/unistd.h b/include/asm-h8300/unistd.h
index 48b362f..56a6401 100644
--- a/include/asm-h8300/unistd.h
+++ b/include/asm-h8300/unistd.h
@@ -310,163 +310,155 @@ do { \
return (type) (res); \
} while (0)
-#define _syscall0(type, name) \
-type name(void) \
-{ \
- register long __res __asm__("er0"); \
- __asm__ __volatile__ ("mov.l %1,er0\n\t" \
- "trapa #0\n\t" \
- : "=r" (__res) \
- : "ir" (__NR_##name) \
- : "cc"); \
- if ((unsigned long)(__res) >= (unsigned long)(-125)) { \
- errno = -__res; \
- __res = -1; \
- } \
- return (type)__res; \
+#define _syscall0(type, name) \
+type name(void) \
+{ \
+ register long __res __asm__("er0"); \
+ __asm__ __volatile__ ("mov.l %1,er0\n\t" \
+ "trapa #0\n\t" \
+ : "=r" (__res) \
+ : "g" (__NR_##name) \
+ : "cc", "memory"); \
+ __syscall_return(type, __res); \
}
-#define _syscall1(type, name, atype, a) \
-type name(atype a) \
-{ \
- register long __res __asm__("er0"); \
- __asm__ __volatile__ ("mov.l %2, er1\n\t" \
- "mov.l %1, er0\n\t" \
- "trapa #0\n\t" \
- : "=r" (__res) \
- : "ir" (__NR_##name), \
- "g" ((long)a) \
- : "cc", "er1"); \
- if ((unsigned long)(__res) >= (unsigned long)(-125)) { \
- errno = -__res; \
- __res = -1; \
- } \
- return (type)__res; \
+#define _syscall1(type, name, atype, a) \
+type name(atype a) \
+{ \
+ register long __res __asm__("er0"); \
+ register long _a __asm__("er1"); \
+ _a = (long)a; \
+ __asm__ __volatile__ ("mov.l %1,er0\n\t" \
+ "trapa #0\n\t" \
+ : "=r" (__res) \
+ : "g" (__NR_##name), \
+ "g" (_a) \
+ : "cc", "memory"); \
+ __syscall_return(type, __res); \
}
-#define _syscall2(type, name, atype, a, btype, b) \
-type name(atype a, btype b) \
-{ \
- register long __res __asm__("er0"); \
- __asm__ __volatile__ ("mov.l %3, er2\n\t" \
- "mov.l %2, er1\n\t" \
- "mov.l %1, er0\n\t" \
- "trapa #0\n\t" \
- : "=r" (__res) \
- : "ir" (__NR_##name), \
- "g" ((long)a), \
- "g" ((long)b) \
- : "cc", "er1", "er2"); \
- if ((unsigned long)(__res) >= (unsigned long)(-125)) { \
- errno = -__res; \
- __res = -1; \
- } \
- return (type)__res; \
+#define _syscall2(type, name, atype, a, btype, b) \
+type name(atype a, btype b) \
+{ \
+ register long __res __asm__("er0"); \
+ register long _a __asm__("er1"); \
+ register long _b __asm__("er2"); \
+ _a = (long)a; \
+ _b = (long)b; \
+ __asm__ __volatile__ ("mov.l %1,er0\n\t" \
+ "trapa #0\n\t" \
+ : "=r" (__res) \
+ : "g" (__NR_##name), \
+ "g" (_a), \
+ "g" (_b) \
+ : "cc", "memory"); \
+ __syscall_return(type, __res); \
}
-#define _syscall3(type, name, atype, a, btype, b, ctype, c) \
-type name(atype a, btype b, ctype c) \
-{ \
- register long __res __asm__("er0"); \
- __asm__ __volatile__ ("mov.l %4, er3\n\t" \
- "mov.l %3, er2\n\t" \
- "mov.l %2, er1\n\t" \
- "mov.l %1, er0\n\t" \
- "trapa #0\n\t" \
- : "=r" (__res) \
- : "ir" (__NR_##name), \
- "g" ((long)a), \
- "g" ((long)b), \
- "g" ((long)c) \
- : "cc", "er1", "er2", "er3"); \
- if ((unsigned long)(__res) >= (unsigned long)(-125)) { \
- errno = -__res; \
- __res = -1; \
- } \
- return (type)__res; \
+#define _syscall3(type, name, atype, a, btype, b, ctype, c) \
+type name(atype a, btype b, ctype c) \
+{ \
+ register long __res __asm__("er0"); \
+ register long _a __asm__("er1"); \
+ register long _b __asm__("er2"); \
+ register long _c __asm__("er3"); \
+ _a = (long)a; \
+ _b = (long)b; \
+ _c = (long)c; \
+ __asm__ __volatile__ ("mov.l %1,er0\n\t" \
+ "trapa #0\n\t" \
+ : "=r" (__res) \
+ : "g" (__NR_##name), \
+ "g" (_a), \
+ "g" (_b), \
+ "g" (_c) \
+ : "cc", "memory"); \
+ __syscall_return(type, __res); \
}
-#define _syscall4(type, name, atype, a, btype, b, ctype, c, dtype, d) \
-type name(atype a, btype b, ctype c, dtype d) \
-{ \
- register long __res __asm__("er0"); \
- __asm__ __volatile__ ("mov.l %5, er4\n\t" \
- "mov.l %4, er3\n\t" \
- "mov.l %3, er2\n\t" \
- "mov.l %2, er1\n\t" \
- "mov.l %1, er0\n\t" \
- "trapa #0\n\t" \
- : "=r" (__res) \
- : "ir" (__NR_##name), \
- "g" ((long)a), \
- "g" ((long)b), \
- "g" ((long)c), \
- "g" ((long)d) \
- : "cc", "er1", "er2", "er3", "er4"); \
- if ((unsigned long)(__res) >= (unsigned long)(-125)) { \
- errno = -__res; \
- __res = -1; \
- } \
- return (type)__res; \
+#define _syscall4(type, name, atype, a, btype, b, \
+ ctype, c, dtype, d) \
+type name(atype a, btype b, ctype c, dtype d) \
+{ \
+ register long __res __asm__("er0"); \
+ register long _a __asm__("er1"); \
+ register long _b __asm__("er2"); \
+ register long _c __asm__("er3"); \
+ register long _d __asm__("er4"); \
+ _a = (long)a; \
+ _b = (long)b; \
+ _c = (long)c; \
+ _d = (long)d; \
+ __asm__ __volatile__ ("mov.l %1,er0\n\t" \
+ "trapa #0\n\t" \
+ : "=r" (__res) \
+ : "g" (__NR_##name), \
+ "g" (_a), \
+ "g" (_b), \
+ "g" (_c), \
+ "g" (_d) \
+ : "cc", "memory"); \
+ __syscall_return(type, __res); \
}
-#define _syscall5(type, name, atype, a, btype, b, ctype, c, dtype, d, etype, e) \
-type name(atype a, btype b, ctype c, dtype d, etype e) \
-{ \
- register long __res __asm__("er0"); \
- __asm__ __volatile__ ("mov.l %6, er5\n\t" \
- "mov.l %5, er4\n\t" \
- "mov.l %4, er3\n\t" \
- "mov.l %3, er2\n\t" \
- "mov.l %2, er1\n\t" \
- "mov.l %1, er0\n\t" \
- "trapa #0\n\t" \
- : "=r" (__res) \
- : "ir" (__NR_##name), \
- "g" ((long)a), \
- "g" ((long)b), \
- "g" ((long)c), \
- "g" ((long)d), \
- "m" ((long)e) \
- : "cc", "er1", "er2", "er3", "er4", "er5"); \
- if ((unsigned long)(__res) >= (unsigned long)(-125)) { \
- errno = -__res; \
- __res = -1; \
- } \
- return (type)__res; \
+#define _syscall5(type, name, atype, a, btype, b, \
+ ctype, c, dtype, d, etype, e) \
+type name(atype a, btype b, ctype c, dtype d, etype e) \
+{ \
+ register long __res __asm__("er0"); \
+ register long _a __asm__("er1"); \
+ register long _b __asm__("er2"); \
+ register long _c __asm__("er3"); \
+ register long _d __asm__("er4"); \
+ register long _e __asm__("er5"); \
+ _a = (long)a; \
+ _b = (long)b; \
+ _c = (long)c; \
+ _d = (long)d; \
+ _e = (long)e; \
+ __asm__ __volatile__ ("mov.l %1,er0\n\t" \
+ "trapa #0\n\t" \
+ : "=r" (__res) \
+ : "g" (__NR_##name), \
+ "g" (_a), \
+ "g" (_b), \
+ "g" (_c), \
+ "g" (_d), \
+ "g" (_e) \
+ : "cc", "memory"); \
+ __syscall_return(type, __res); \
}
-
-#define _syscall6(type, name, atype, a, btype, b, ctype, c, dtype, d, \
- etype, e, ftype, f) \
-type name(atype a, btype b, ctype c, dtype d, etype e, ftype f) \
-{ \
- register long __res __asm__("er0"); \
- __asm__ __volatile__ ("mov.l er6,@-sp\n\t" \
- "mov.l %7, er6\n\t" \
- "mov.l %6, er5\n\t" \
- "mov.l %5, er4\n\t" \
- "mov.l %4, er3\n\t" \
- "mov.l %3, er2\n\t" \
- "mov.l %2, er1\n\t" \
- "mov.l %1, er0\n\t" \
- "trapa #0\n\t" \
- "mov.l @sp+,er6" \
- : "=r" (__res) \
- : "ir" (__NR_##name), \
- "g" ((long)a), \
- "g" ((long)b), \
- "g" ((long)c), \
- "g" ((long)d), \
- "m" ((long)e), \
- "m" ((long)e) \
- : "cc", "er1", "er2", "er3", "er4", "er5"); \
- if ((unsigned long)(__res) >= (unsigned long)(-125)) { \
- errno = -__res; \
- __res = -1; \
- } \
- return (type)__res; \
+
+#define _syscall6(type, name, atype, a, btype, b, \
+ ctype, c, dtype, d, etype, e, ftype, f) \
+type name(atype a, btype b, ctype c, dtype d, etype e, ftype f) \
+{ \
+ register long __res __asm__("er0"); \
+ register long _a __asm__("er1"); \
+ register long _b __asm__("er2"); \
+ register long _c __asm__("er3"); \
+ register long _d __asm__("er4"); \
+ register long _e __asm__("er5"); \
+ register long _f __asm__("er6"); \
+ _a = (long)a; \
+ _b = (long)b; \
+ _c = (long)c; \
+ _d = (long)d; \
+ _e = (long)e; \
+ _f = (long)f; \
+ __asm__ __volatile__ ("mov.l %1,er0\n\t" \
+ "trapa #0\n\t" \
+ : "=r" (__res) \
+ : "g" (__NR_##name), \
+ "g" (_a), \
+ "g" (_b), \
+ "g" (_c), \
+ "g" (_d), \
+ "g" (_e) \
+ "g" (_f) \
+ : "cc", "memory"); \
+ __syscall_return(type, __res); \
}
-
#ifdef __KERNEL__
#define __ARCH_WANT_IPC_PARSE_VERSION