xref: /openbsd-src/gnu/usr.bin/binutils/gdb/rdi-share/hsys.h (revision 63addd46c1e40ca0f49488ddcdc4ab598023b0c1)
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