diff options
-rw-r--r-- | include/asm-h8300/page.h | 4 | ||||
-rw-r--r-- | include/asm-h8300/unistd.h | 282 |
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 |