• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

sst/elements/genericProc/FE/ppcFrontEnd/ppcSystemTrapHandler.h

00001 // Copyright 2007 Sandia Corporation. Under the terms
00002 // of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S.
00003 // Government retains certain rights in this software.
00004 // 
00005 // Copyright (c) 2005-2007, Sandia Corporation
00006 // All rights reserved.
00007 // Copyright (c) 2003-2005, University of Notre Dame
00008 // All rights reserved.
00009 // 
00010 // This file is part of the SST software package. For license
00011 // information, see the LICENSE file in the top level directory of the
00012 // distribution.
00013 
00014 
00015 #ifndef SYSTEMTRAPHANDLER_H
00016 #define SYSTEMTRAPHANDLER_H
00017 
00018   template <int N, class T>
00019   bool Perform_Str_x(T func, simRegister *, simRegister &nextPC);
00020 
00021   template <int N, class T>
00022   bool Perform_x(T func, simRegister *, simRegister &nextPC);
00023 
00024   bool Perform_SYS_mach_msg_trap(processor*, simRegister *);
00025   void do_host_info(processor*, simRegister *);
00026   void do_clock_get_time(processor*, simRegister *);
00027   bool Perform_SYS_mach(processor*, simRegister *);
00028 
00029 ppcThread* createThreadWithStack(processor* proc, simRegister *regs);
00030 
00031   bool  Perform_SYS_blank(processor*, simRegister *);
00032   bool  Perform_SYS_exit(processor*, simRegister *);
00033   bool  Perform_SYS_getrusage(processor*, simRegister *, simRegister &);
00034   bool  Perform_SYS_getrlimit(processor*, simRegister *, simRegister &);
00035   bool  Perform_SYS_fork(processor*, simRegister *);
00036   bool  Perform_SYS_vfork(processor*, simRegister *);
00037   bool  Perform_SYS_read(processor*, simRegister *, simRegister &);
00038   bool  Perform_SYS_open(processor*, simRegister *);
00039   bool  Perform_SYS_write(processor*, simRegister *, simRegister &);
00040   bool  Perform_SYS_writev(processor*, simRegister *, simRegister &);
00041   bool  Perform_SYS_close(processor*, simRegister *);
00042   bool  Perform_SYS_creat(processor*, simRegister *);
00043   bool  Perform_SYS_unlink(processor*, simRegister *);
00044   bool  Perform_SYS_chdir(processor*, simRegister *);
00045   bool  Perform_SYS_chmod(processor*, simRegister *);
00046   bool  Perform_SYS_chown(processor*, simRegister *);
00047   bool  Perform_SYS_brk(processor*, simRegister *);
00048   bool  Perform_SYS_lseek(processor*, simRegister *, simRegister &);
00049   bool  Perform_SYS_getuid(processor*, simRegister *);
00050   bool  Perform_SYS_access(processor*, simRegister *);
00051   bool  Perform_SYS_stat(processor*, simRegister *, simRegister &);
00052   bool  Perform_SYS_lstat(processor*, simRegister *, simRegister &);
00053   bool  Perform_SYS_kill(processor*, simRegister *, simRegister &);
00054   bool  Perform_SYS_dup(processor*, simRegister *);
00055   bool  Perform_SYS_pipe(processor*, simRegister *);
00056   bool  Perform_SYS_getgid(processor*, simRegister *);
00057   bool  Perform_SYS_ioctl(processor*, simRegister *);
00058   bool  Perform_SYS_fstat(processor*, simRegister *, simRegister &nextPC);
00059   bool  Perform_SYS_getpagesize(processor*, simRegister *);
00060   bool  Perform_SYS_fsync(processor*, simRegister *);
00061   bool  Perform_SYS_dup2(processor*, simRegister *);
00062   bool  Perform_SYS_fcntl(processor*, simRegister *);
00063   bool  Perform_SYS_select(processor*, simRegister *);
00064   bool  Perform_SYS_gettimeofday(processor*, simRegister*,simRegister &nextPC);
00065   bool  Perform_SYS___sysctl(processor*, simRegister*,simRegister &nextPC);
00066   bool  Perform_SYS_issetugid(processor* proc, simRegister *regs, simRegister &nextPC);
00067 
00068   bool  Perform_PIM_FORK(processor*, simRegister *);
00069   bool  Perform_PIM_EXIT(processor*, simRegister *);
00070   bool  Perform_PIM_EXIT_FREE(processor*, simRegister *);
00071   bool  Perform_PIM_LOCK(processor*, simRegister *);
00072   bool  Perform_PIM_UNLOCK(processor*, simRegister *);
00073   bool  Perform_PIM_IS_LOCAL(processor*, simRegister *);
00074   bool  Perform_PIM_ALLOCATE_LOCAL(processor*, simRegister *);
00075   bool  Perform_PIM_MOVE_TO(processor*, simRegister *);
00076   bool  Perform_PIM_MOVE_AWAY(processor*, simRegister *);
00077   bool  Perform_PIM_QUICK_PRINT(processor*, simRegister *);
00078   bool  Perform_PIM_TRACE(processor*, simRegister *);
00079   bool  Perform_PIM_FFILE_RD(processor*, simRegister *);
00080   bool  Perform_PIM_RAND(processor*, simRegister *);
00081   bool  Perform_PIM_MALLOC(processor*, simRegister *);
00082   bool  Perform_PIM_FREE(processor*, simRegister *);
00083   bool  Perform_PIM_WRITE_MEM(processor*, simRegister *);
00084   bool  Perform_PIM_RESET(processor* thread, simRegister *);
00085   bool  Perform_PIM_NUMBER(processor* thread, simRegister *);
00086   bool  Perform_PIM_REMAP(processor* thread, simRegister *);
00087   bool  Perform_PIM_REMAP_TO_ADDR(processor* thread, simRegister *);
00088   bool  Perform_PIM_ATOMIC_INCREMENT(processor* thread, simRegister *);
00089   bool  Perform_PIM_ATOMIC_DECREMENT(processor* thread, simRegister *);
00090   bool  Perform_PIM_EST_STATE_SIZE(processor* thread, simRegister *);
00091   bool  Perform_PIM_TRY_READFX(processor* thread, simRegister *);
00092   bool  Perform_PIM_TRY_WRITEEF(processor* thread, simRegister *);
00093   bool  Perform_PIM_READFX(processor* thread, simRegister *);
00094   bool  Perform_PIM_WRITEEF(processor* thread, simRegister *);
00095   bool  Perform_PIM_CHANGE_FE(processor* thread, simRegister *);
00096 bool  Perform_PIM_BULK_set_FE(processor* thread, simRegister *, simRegister);
00097   bool  Perform_PIM_IS_FE_FULL(processor* thread, simRegister *);
00098   bool  Perform_PIM_IS_PRIVATE(processor* thread, simRegister *);
00099   bool  Perform_PIM_TID(processor* thread, simRegister *);
00100   bool  Perform_PIM_REMAP_TO_POLY(processor* thread, simRegister *);
00101   bool  Perform_PIM_TAG_INSTRUCTIONS(processor* thread, simRegister *);
00102   bool  Perform_PIM_TAG_SWITCH(processor* thread, simRegister *);
00103   bool  Perform_PIM_SPAWN_TO_COPROC(processor*, simRegister *);
00104   bool  Perform_PIM_SPAWN_TO_LOCALE_STACK(processor*, simRegister *);
00105   bool  Perform_PIM_SPAWN_TO_LOCALE_STACK_STOPPED(processor*, simRegister *);
00106   bool  Perform_PIM_START_STOPPED_THREAD(processor*, simRegister *);
00107   bool  Perform_PIM_SWITCH_ADDR_MODE(processor*, simRegister *);
00108   bool  Perform_PIM_WRITE_SPECIAL(processor*, simRegister *, const int);
00109   bool  Perform_PIM_READ_SPECIAL(processor*, simRegister *, const int,
00110                                  const int);
00111   bool  Perform_PIM_TRYEF(processor*, simRegister *);
00112 
00113   bool  Perform_PIM_MEM_REGION_CREATE(processor* thread, simRegister *);
00114   bool  Perform_PIM_MEM_REGION_GET(processor* thread, simRegister *);
00115 
00116   bool  Perform_Unimplemented(processor*, simRegister *);
00117 
00118   bool  Perform_NETSIM_pickup(processor*, simRegister *, simRegister &);
00119   bool  Perform_NETSIM_SYS_CALL(processor*, simRegister *, simRegister &);
00120   bool  Perform_NETSIM_TX_CALL(processor*, simRegister *, simRegister &);
00121 
00122 bool Perform_PIM_AMO(processor *, simRegister*);
00123 bool Perform_PIM_MATVEC(processor *, simRegister*);
00124 bool Perform_PIM_ADV_OUT(processor *, simRegister*);
00125 bool Perform_PIM_FORCE_CALC(processor *, simRegister*);
00126 bool Perform_PIM_PAGERANK(processor *, simRegister*);
00127 
00128 
00129 #endif

Generated on Fri Oct 22 2010 11:02:22 for SST by  doxygen 1.7.1