00001 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 00003 /* ArchC Syscall Library for the ArchC architecture simulators 00004 Copyright (C) 2002-2004 The ArchC Team 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Lesser General Public 00008 License as published by the Free Software Foundation; either 00009 version 2.1 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Lesser General Public License for more details. 00015 */ 00016 00017 /********************************************************/ 00018 /* ArchC Syscalls header file. */ 00019 /* Author: Marcus Bartholomeu */ 00020 /* */ 00021 /* */ 00022 /* The ArchC Team */ 00023 /* Computer Systems Laboratory (LSC) */ 00024 /* IC-UNICAMP */ 00025 /* http://www.lsc.ic.unicamp.br */ 00026 /********************************************************/ 00027 00028 #ifndef AC_SYSCALL_H 00029 #define AC_SYSCALL_H 00030 00031 #ifdef USE_GDB 00032 #include "ac_gdb.H" 00033 00034 extern AC_GDB *gdbstub; 00035 #endif /* USE_GDB */ 00036 00037 class ac_syscall 00038 { 00039 public: 00040 00041 #define AC_SYSC(NAME,LOCATION) \ 00042 void NAME(); 00043 00044 #include <ac_syscall.def> 00045 00046 #undef AC_SYSC 00047 00048 00050 virtual void get_buffer(int argn, unsigned char* buf, unsigned int size) =0; 00051 virtual void set_buffer(int argn, unsigned char* buf, unsigned int size) =0; 00052 virtual int get_int(int argn) =0; 00053 virtual void set_int(int argn, int val) =0; 00054 virtual void return_from_syscall() =0; 00055 virtual void set_prog_args(int argc, char *argv[]) =0; 00056 }; 00057 00058 #endif