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