mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-02 02:35:00 +08:00
Initial creation of sourceware repository
This commit is contained in:
104
gdb/rdi-share/devices.h
Normal file
104
gdb/rdi-share/devices.h
Normal file
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved.
|
||||
*
|
||||
* This software may be freely used, copied, modified, and distributed
|
||||
* provided that the above copyright notice is preserved in all copies of the
|
||||
* software.
|
||||
*/
|
||||
|
||||
/* -*-C-*-
|
||||
*
|
||||
* $Revision$
|
||||
* $Date$
|
||||
*
|
||||
*
|
||||
* Project: ANGEL
|
||||
*
|
||||
* Title: Devices header file
|
||||
*/
|
||||
|
||||
#ifndef angel_devices_h
|
||||
#define angel_devices_h
|
||||
|
||||
/*
|
||||
* Provides common types for using devices, and provides access to the
|
||||
* device table.
|
||||
*/
|
||||
|
||||
#include "angel.h"
|
||||
#include "buffers.h"
|
||||
|
||||
/* General purpose constants, macros, enums, typedefs */
|
||||
|
||||
/* a non-enum holder for device IDs */
|
||||
typedef unsigned int DeviceID;
|
||||
|
||||
/* device error codes */
|
||||
typedef enum DevError {
|
||||
DE_OKAY, /* no error */
|
||||
DE_NO_DEV, /* no such device */
|
||||
DE_BAD_DEV, /* device does not support angel */
|
||||
DE_BAD_CHAN, /* no such device channel */
|
||||
DE_BAD_OP, /* operation not supported by this device */
|
||||
DE_BUSY, /* device already busy */
|
||||
DE_INVAL, /* length invalid */
|
||||
DE_FAILED /* something else went wrong */
|
||||
} DevError;
|
||||
|
||||
/* return codes from asynchronous calls - primarily for channels' benefit */
|
||||
typedef enum DevStatus {
|
||||
DS_DONE, /* operation succeeded */
|
||||
DS_OVERFLOW, /* not enough buffer space */
|
||||
DS_BAD_PACKET, /* packet failed */
|
||||
DS_DEV_ERROR, /* device error */
|
||||
DS_INT_ERROR /* internal error */
|
||||
} DevStatus;
|
||||
|
||||
/* Callback for async. writes */
|
||||
typedef void (*DevWrite_CB_Fn)(
|
||||
void *buff, /* pointer to data -- cast to p_Buffer */
|
||||
void *length, /* how much done -- cast to unsigned */
|
||||
void *status, /* success code -- cast to DevStatus */
|
||||
void *cb_data /* as supplied */
|
||||
);
|
||||
|
||||
/* Callback for async. reads */
|
||||
typedef void (*DevRead_CB_Fn)(
|
||||
void *buff, /* pointer to data -- cast to p_Buffer */
|
||||
void *length, /* how much read -- cast to unsigned */
|
||||
void *status, /* success code -- cast to DevStatus */
|
||||
void *cb_data /* as supplied */
|
||||
);
|
||||
|
||||
/* control operations */
|
||||
typedef enum DeviceControl {
|
||||
DC_INIT, /* initialise device */
|
||||
DC_RESET, /* reset device */
|
||||
DC_RECEIVE_MODE, /* control reception */
|
||||
DC_SET_PARAMS, /* set parameters of device */
|
||||
#ifndef TARGET
|
||||
DC_GET_USER_PARAMS, /* params set by user at open */
|
||||
DC_GET_DEFAULT_PARAMS, /* device default parameters */
|
||||
DC_RESYNC, /* resynchronise with new agent */
|
||||
#endif
|
||||
DC_PRIVATE /* start of private device codes */
|
||||
} DeviceControl;
|
||||
|
||||
typedef enum DevRecvMode {
|
||||
DR_DISABLE,
|
||||
DR_ENABLE
|
||||
} DevRecvMode;
|
||||
|
||||
/*
|
||||
* callback to allow a device driver to request a buffer, to be filled
|
||||
* with an incoming packet
|
||||
*/
|
||||
typedef p_Buffer (*DevGetBuff_Fn)(unsigned req_size, void *cb_data);
|
||||
|
||||
|
||||
/* Publically-accessible globals */
|
||||
/* none */
|
||||
|
||||
#endif /* ndef angel_devices_h */
|
||||
|
||||
/* EOF devices.h */
|
Reference in New Issue
Block a user