/* Copyright (c) 2012, 2013 Red Hat, Inc. All rights reserved. This copyrighted material is made available to anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the BSD License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY expressed or implied, including the implied warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. A copy of this license is available at http://www.opensource.org/licenses. Any Red Hat trademarks that are incorporated in the source code or documentation are not subject to the BSD License and may only be used or replicated with the express permission of Red Hat, Inc. */ /* Empty syscall definitions for when we run on real hardware. */ #include "../syscall.h" #include "memmodel.h" #define ENOSYS 88 .macro sc,a sc2 \a,\a .endm .macro START_FUNC name1, name2=foo .pushsection .text.\name1,"ax",@progbits .p2align 1 .weak \name1 .global \name1 \name1: .ifnc \name2,foo .weak \name2 .global \name2 \name2: .endif .endm .macro END_FUNC name1, name2=foo .type \name1 , @function .size \name1 , . - \name1 .ifnc \name2,foo .type \name2 , @function .size \name2 , . - \name2 .endif .popsection .endm START_FUNC exit, _exit /* For some reason, the board fails to stop at a breakpoint placed on top of a software breakpoint instruction. */ /* MOV.B #0,R3 ; this is a software breakpoint instruction */ 1: br_ #1b END_FUNC exit, _exit START_FUNC isatty,_isatty MOV #1,R12 ret_ END_FUNC isatty,_isatty START_FUNC getpid MOV #42,R12 ret_ END_FUNC getpid .macro sc2,name,num START_FUNC \name call_ #__errno movx_ #ENOSYS, @R12 MOV.W #-1,R12 ret_ END_FUNC \name .endm #define SC(n) sc2 n,SYS_##n SC (open) SC (close) SC (read) /* SC (write)*/ SC (fstat) SC (lseek) SC (kill)