diff options
author | Eric Norum <WENorum@lbl.gov> | 2005-02-02 14:17:26 +0000 |
---|---|---|
committer | Eric Norum <WENorum@lbl.gov> | 2005-02-02 14:17:26 +0000 |
commit | 12993b38fffe5e56a652c117ea6f79c2158b82ba (patch) | |
tree | f0c448b63b61ed07e0345c044e4b1161b489c106 /c/src/lib/libbsp/m68k | |
parent | Provide 'last-ditch' hardware address. (diff) | |
download | rtems-12993b38fffe5e56a652c117ea6f79c2158b82ba.tar.bz2 |
Clean up bootloader syscall handling.
Diffstat (limited to 'c/src/lib/libbsp/m68k')
-rw-r--r-- | c/src/lib/libbsp/m68k/uC5282/include/bsp.h | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c | 50 |
2 files changed, 26 insertions, 26 deletions
diff --git a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h index 9d6f8221f0..91d4226a5b 100644 --- a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h +++ b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h @@ -69,7 +69,7 @@ extern rtems_configuration_table BSP_Configuration; unsigned32 get_CPU_clock_speed(void); unsigned const char *uC5282_gethwaddr(int a); -char *uC5282_getbenv(const char *a); +const char *uC5282_getbenv(const char *a); void bsp_cleanup(void); diff --git a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c index ae47ae3d9c..f3b46b41eb 100644 --- a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c @@ -253,31 +253,31 @@ unsigned32 get_CPU_clock_speed(void) } /* - * Arcturus routines for getting value from bootloader + * Arcturus bootloader system calls */ -#define __bsc_return(type, res) \ -do { \ - if ((unsigned long)(res) >= (unsigned long)(-64)) { \ - errno = -(res); \ - res = -1; \ - } \ - return (type)(res); \ +#define syscall_return(type, ret) \ +do { \ + if ((unsigned long)(ret) >= (unsigned long)(-64)) { \ + errno = -(ret); \ + ret = -1; \ + } \ + return (type)(ret); \ } while (0) -#define _bsc1(type,name,atype,a) \ -type uC5282_##name(atype a) \ -{ \ - long __res; \ - register long __a __asm__ ("%d1") = (long)a; \ - __asm__ __volatile__ ("move.l %0,%%d0\n\t" \ - "trap #2\n\t" \ - "move.l %%d0,%0" \ - : "=d" (__res) \ - : "0" (__BN_##name), "d" (__a) \ - : "d0" ); \ - __bsc_return(type,__res); \ +#define syscall_1(type,name,d1type,d1) \ +type uC5282_##name(d1type d1) \ +{ \ + long ret; \ + register long __d1 __asm__ ("%d1") = (long)d1; \ + __asm__ __volatile__ ("move.l %0,%%d0\n\t" \ + "trap #2\n\t" \ + "move.l %%d0,%0" \ + : "=g" (ret) \ + : "d" (SysCode_##name), "d" (__d1) \ + : "d0" ); \ + syscall_return(type,ret); \ } -#define __BN_gethwaddr 12 /* get the hardware address of my interfaces */ -#define __BN_getbenv 14 /* get a bootloader envvar */ -#define __BN_setbenv 15 /* get a bootloader envvar */ -_bsc1(unsigned const char *, gethwaddr, int, a) -_bsc1(char *, getbenv, const char *, a) +#define SysCode_gethwaddr 12 /* get hardware address */ +#define SysCode_getbenv 14 /* get bootloader environment variable */ +#define SysCode_setbenv 15 /* get bootloader environment variable */ +syscall_1(unsigned const char *, gethwaddr, int, a) +syscall_1(const char *, getbenv, const char *, a) |