#include #include #include #ifdef CONFIG_ARM /* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ #warning ARM version not implemented yet /* XXXXXXXXXXXXXXXXXXXXXXXXXXXX */ .global mon_getc .type mon_getc,function mon_getc: .global mon_tstc .type mon_tstc,function mon_tstc: .global mon_putc .type mon_putc,function mon_putc: .global mon_puts .type mon_puts,function mon_puts: .global mon_printf .type mon_printf,function mon_printf: .global mon_install_hdlr .type mon_install_hdlr,function mon_install_hdlr: .global mon_free_hdlr .type mon_free_hdlr,function mon_free_hdlr: .global mon_malloc .type mon_malloc,function mon_malloc: .global mon_free .type mon_free,function mon_free: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, current_function_anonymous_args = 0 mov ip, sp stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 ldmea fp, {fp, sp, pc} #else /* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ #ifdef CONFIG_I386 /* XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ #define SYMBOL_NAME(X) X #define SYMBOL_NAME_LABEL(X) X##: #define SYSCALL(name,n) \ .globl SYMBOL_NAME(name) ; \ SYMBOL_NAME_LABEL(name) ; \ ret #endif /* CONFIG_I386 */ #ifdef CONFIG_PPC #define SYSCALL(name,n) \ .globl name ; \ name: ; \ li r0,n ; \ sc ; \ blr #endif /* CONFIG_PPC */ .text /* * Make sure these functions are in the same order as they * appear in the "include/syscall.h" header file !!! */ SYSCALL(mon_getc,SYSCALL_GETC) SYSCALL(mon_tstc,SYSCALL_TSTC) SYSCALL(mon_putc,SYSCALL_PUTC) SYSCALL(mon_puts,SYSCALL_PUTS) SYSCALL(mon_printf,SYSCALL_PRINTF) SYSCALL(mon_install_hdlr,SYSCALL_INSTALL_HDLR) SYSCALL(mon_free_hdlr,SYSCALL_FREE_HDLR) SYSCALL(mon_malloc,SYSCALL_MALLOC) SYSCALL(mon_free,SYSCALL_FREE) SYSCALL(mon_udelay,SYSCALL_UDELAY) SYSCALL(mon_get_timer,SYSCALL_GET_TIMER) #endif /* CONFIG_ARM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */