OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.0/] [gdb/] [rdi-share/] [devices.h] - Blame information for rev 1774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 106 markom
/*
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: 1.1.1.1 $
12
 *     $Date: 2001-05-18 11:16:39 $
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 */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.