1 /* 2 * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved. 3 * 4 * This software may be freely used, copied, modified, and distributed 5 * provided that the above copyright notice is preserved in all copies of the 6 * software. 7 */ 8 9 /* 10 * Host C library support header file. 11 * 12 * $Revision: 1.3 $ 13 * $Date: 2004/12/27 14:00:54 $ 14 * 15 */ 16 17 #ifndef angsd_hsys_h 18 #define angsd_hsys_h 19 20 #define HSYS_FOPEN_MAX 256 21 #define NONHANDLE -1 22 #define UNIQUETEMPS 256 23 24 #include "dbg_hif.h" 25 #include "hostchan.h" 26 27 typedef struct { 28 FILE *FileTable[HSYS_FOPEN_MAX] ; 29 char FileFlags[HSYS_FOPEN_MAX] ; 30 char *TempNames[UNIQUETEMPS]; 31 } OSblock; 32 33 #define NOOP 0 34 #define BINARY 1 35 #define READOP 2 36 #define WRITEOP 4 37 38 typedef struct { 39 const struct Dbg_HostosInterface *hostif; /* Interface to debug toolkit. */ 40 int last_errno; /* Number of the last error. */ 41 OSblock *OSptr; 42 char **CommandLine ; /* Ptr to cmd line d`string held by ardi.c */ 43 } hsys_state; 44 45 /* 46 * Function: HostSysInit 47 * Purpose: Set up the state block, filetable and register the and C lib 48 * callback fn 49 * 50 * Params: 51 * Input: hostif, the host interface from the debug toolbox 52 * cmdline, the command line used to call the image 53 * state, the status block for the C lib 54 * 55 * Returns: 56 * OK: an RDIError_* valuee 57 */ 58 extern int HostSysInit( 59 const struct Dbg_HostosInterface *hostif, char **cmdline, hsys_state **state 60 ); 61 62 /* 63 * Function: HostSysExit 64 * Purpose: Close down the host side C library support 65 * 66 * Params: 67 * Input: hstate, the status block for the C lib 68 * 69 * Returns: an RDIError_* valuee 70 */ 71 extern int HostSysExit(hsys_state *hstate); 72 73 /* 74 * Function: HandleSysMessage 75 * Purpose: Handle an incoming C library message as a callback 76 * 77 * Params: 78 * Input: packet is the incoming data packet as described in devsw.h 79 * hstate, the status block for the C lib 80 * 81 * Returns: an RDIError_* valuee 82 */ 83 extern int HandleSysMessage(Packet *packet, hsys_state* stateptr); 84 85 /* 86 * Function: panic 87 * Purpose: Print a fatal error message 88 * 89 * Params: 90 * Input: format printf() style message describing the problem 91 * ... extra arguments for printf(). 92 * 93 * Returns: This routine does not return 94 * 95 * Post-conditions: Will have called exit(1); 96 */ 97 extern void panic(const char *format, ...); 98 99 #endif /* ndef angsd_hsys_h */ 100 101 /* EOF hsys.h */ 102