* rdi-share/configure, rdi-share/aclocal.m4: Regenerated using
[deliverable/binutils-gdb.git] / gdb / rdi-share / devices.h
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 /* -*-C-*-
10 *
11 * $Revision$
12 * $Date$
13 *
14 *
15 * Project: ANGEL
16 *
17 * Title: Devices header file
18 */
19
20 #ifndef angel_devices_h
21 #define angel_devices_h
22
23 /*
24 * Provides common types for using devices, and provides access to the
25 * device table.
26 */
27
28 #include "angel.h"
29 #include "buffers.h"
30
31 /* General purpose constants, macros, enums, typedefs */
32
33 /* a non-enum holder for device IDs */
34 typedef unsigned int DeviceID;
35
36 /* device error codes */
37 typedef enum DevError {
38 DE_OKAY, /* no error */
39 DE_NO_DEV, /* no such device */
40 DE_BAD_DEV, /* device does not support angel */
41 DE_BAD_CHAN, /* no such device channel */
42 DE_BAD_OP, /* operation not supported by this device */
43 DE_BUSY, /* device already busy */
44 DE_INVAL, /* length invalid */
45 DE_FAILED /* something else went wrong */
46 } DevError;
47
48 /* return codes from asynchronous calls - primarily for channels' benefit */
49 typedef enum DevStatus {
50 DS_DONE, /* operation succeeded */
51 DS_OVERFLOW, /* not enough buffer space */
52 DS_BAD_PACKET, /* packet failed */
53 DS_DEV_ERROR, /* device error */
54 DS_INT_ERROR /* internal error */
55 } DevStatus;
56
57 /* Callback for async. writes */
58 typedef void (*DevWrite_CB_Fn)(
59 void *buff, /* pointer to data -- cast to p_Buffer */
60 void *length, /* how much done -- cast to unsigned */
61 void *status, /* success code -- cast to DevStatus */
62 void *cb_data /* as supplied */
63 );
64
65 /* Callback for async. reads */
66 typedef void (*DevRead_CB_Fn)(
67 void *buff, /* pointer to data -- cast to p_Buffer */
68 void *length, /* how much read -- cast to unsigned */
69 void *status, /* success code -- cast to DevStatus */
70 void *cb_data /* as supplied */
71 );
72
73 /* control operations */
74 typedef enum DeviceControl {
75 DC_INIT, /* initialise device */
76 DC_RESET, /* reset device */
77 DC_RECEIVE_MODE, /* control reception */
78 DC_SET_PARAMS, /* set parameters of device */
79 #ifndef TARGET
80 DC_GET_USER_PARAMS, /* params set by user at open */
81 DC_GET_DEFAULT_PARAMS, /* device default parameters */
82 DC_RESYNC, /* resynchronise with new agent */
83 #endif
84 DC_PRIVATE /* start of private device codes */
85 } DeviceControl;
86
87 typedef enum DevRecvMode {
88 DR_DISABLE,
89 DR_ENABLE
90 } DevRecvMode;
91
92 /*
93 * callback to allow a device driver to request a buffer, to be filled
94 * with an incoming packet
95 */
96 typedef p_Buffer (*DevGetBuff_Fn)(unsigned req_size, void *cb_data);
97
98
99 /* Publically-accessible globals */
100 /* none */
101
102 #endif /* ndef angel_devices_h */
103
104 /* EOF devices.h */
This page took 0.031903 seconds and 4 git commands to generate.