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