diff options
author | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:34:07 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:34:07 +0000 |
commit | 071ea11e85eb9d529cc5eb3d35f6247466a21b99 (patch) | |
tree | 5deda65b8d7b04d1f4cbc534c3206d328e1267ec /gdb/rdi-share/channels.h | |
parent | 1730ec6b1848f0f32154277f788fb29f88d8475b (diff) | |
download | gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.zip gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.gz gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.bz2 |
Initial creation of sourceware repository
Diffstat (limited to 'gdb/rdi-share/channels.h')
-rw-r--r-- | gdb/rdi-share/channels.h | 384 |
1 files changed, 0 insertions, 384 deletions
diff --git a/gdb/rdi-share/channels.h b/gdb/rdi-share/channels.h deleted file mode 100644 index b43ebc1..0000000 --- a/gdb/rdi-share/channels.h +++ /dev/null @@ -1,384 +0,0 @@ -/* - * 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: User interface to the channels layer - */ - -#ifndef angel_channels_h -#define angel_channels_h - -/* - * This provides the public interface to the channels layer read and write - * routines, and buffer management routines. - */ - -/* Nested header files, if required */ - -#include "devices.h" -#include "chandefs.h" -#include "adperr.h" - -/* General purpose constants, macros, enums, typedefs */ - -/* use the default device */ -#define CH_DEFAULT_DEV ((DeviceID)-1) - -/* return codes */ -typedef enum ChanError { - CE_OKAY, /* no error */ - CE_ABANDONED, /* abandoned due to device switch */ - CE_DEV_ERROR, /* unexpected error from device driver */ - CE_BUSY, /* channel in use */ - CE_BUFF_ERROR, /* unable to get buffer */ - CE_PRIVATE /* start of internal error codes */ -} ChanError; - - -/* Publically-accessible globals */ - -/* - * The following two globals are only valid after angel_InitialiseChannels() - * has been called. - */ - -/* the default size of a channel buffer, for global use */ -extern unsigned Angel_ChanBuffSize; - -/* the size of a long buffer, for global use */ -extern unsigned Angel_ChanLongSize; - -#ifdef TARGET -AdpErrs send_resend_msg(DeviceID devid); -#endif - -/* - * Function: angel_InitialiseChannels - * Purpose: initialise the channels layer - * - * Params: - * Input: - - * Output: - - * In/Out: - - * - * Returns: - - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - */ - -void angel_InitialiseChannels( void ); - -/* - * Function: adp_init_seq - * Purpose: initialise sequence numbers and free anyt leftover buffers - * - * Params: - * Input: - - * Output: - - * In/Out: - - * - * Returns: - adp_ok if things went ok else an error code - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - */ - -AdpErrs adp_init_seq(void); - -/* - * Function: angel_ChannelAllocBuffer - * Purpose: allocate a buffer that is at least req_size bytes long - * - * Params: - * Input: req_size the minimum size required - * Output: - - * In/Out: - - * - * Returns: pointer to allocated buffer, or - * NULL if unable to allocate suitable buffer - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - */ - -p_Buffer angel_ChannelAllocBuffer(unsigned req_size); - - -/* - * Function: angel_ChannelReleaseBuffer - * Purpose: release a buffer back to the free pool - * - * Params: - * Input: buffer the buffer to release - * Output: - - * In/Out: - - * - * Returns: - - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - */ - -void angel_ChannelReleaseBuffer(p_Buffer buffer); - - -/* - * Function: angel_ChannelSend - * Purpose: blocking send of a packet via a channel - * - * Params: - * Input: devid Device to use, or CH_DEFAULT_DEV - * chanid Channel to use for tx - * buffer Pointer to data to send - * len Length of data to send - * Output: - - * In/Out: - - * - * Returns: CE_OKAY Transmission completed - * CE_BAD_CHAN Channel id invalid - * CE_ABANDONED Tx abandoned due to device switch - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - */ - -ChanError angel_ChannelSend(DeviceID devid, ChannelID chanid, - const p_Buffer buffer, unsigned len); - - -/* - * Function: angel_ChannelSendAsync - * Purpose: asynchronous send of a packet via a channel - * - * Params: - * Input: devid Device to use, or CH_DEFAULT_DEV - * chanid Channel to use for tx - * buffer Pointer to data to send - * len Length of data to send - * callback Function to call on completion - * callback_data Pointer to pass to callback - * Output: - - * In/Out: - - * - * Returns: CE_OKAY Transmission underway - * CE_BAD_CHAN Channel id invalid - * CE_ABANDONED Tx abandoned due to device switch - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - * - * register an asynchronous send on the given channel - * (blocks until send can be commenced) - */ - -typedef void (*ChanTx_CB_Fn)(ChannelID chanid, /* which channel */ - void *callback_data); /* as supplied... */ - - -ChanError angel_ChannelSendAsync( DeviceID devid, - ChannelID chanid, - const p_Buffer buffer, - unsigned len, - ChanTx_CB_Fn callback, - void *callback_data); - - -/* - * Function: angel_ChannelRead - * Purpose: blocking read of a packet from a channel - * - * Params: - * Input: devid Device to use, or CH_DEFAULT_DEV - * chanid Channel to use for rx - * Output: buffer The buffer, supplied and filled - * len How many bytes there are in the buffer - * In/Out: - - * - * Returns: CE_OKAY Reception successful - * CE_BAD_CHAN Channel id invalid - * CE_ABANDONED Tx abandoned due to device switch - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - * - * Note that in the present version, if an asynchronous read has been - * registered, a blocking read will be refused with CE_BUSY. - */ -ChanError angel_ChannelRead(DeviceID devid, - ChannelID chanid, - p_Buffer *buffer, - unsigned *len); - - -/* - * Function: angel_ChannelReadAsync - * Purpose: asynchronous read of a packet via a channel - * - * Params: - * Input: devid Device to use, or CH_DEFAULT_DEV - * chanid Channel to wait on - * callback Function to call on completion, or NULL - * callback_data Pointer to pass to callback - * Output: - - * In/Out: - - * - * Returns: CE_OKAY Read request registered - * CE_BAD_CHAN Channel id invalid - * CE_BUSY Someone else is using the channel - * (in a single threaded world) - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - * - * Register an asynchronous read on the given channel. There can only be one - * async. reader per channel, and blocking reads are not permitted whilst - * an async. reader is registered. - * - * Reader can unregister by specifying NULL as the callback function. - */ - -typedef void (*ChanRx_CB_Fn)(DeviceID devID, /* ID of receiving device */ - ChannelID chanID, /* ID of receiving channel */ - p_Buffer buff, /* pointer to buffer */ - unsigned len, /* length of data */ - void *cb_data /* callback data */ - ); - -ChanError angel_ChannelReadAsync(DeviceID devid, - ChannelID chanid, - ChanRx_CB_Fn callback, - void *callback_data); - - -/* - * Function: angel_ChannelReadAll - * Purpose: register an asynchronous read across all devices - * - * Params: - * Input: chanid Channel to look for (usually HBOOT) - * callback Function to call on completion - * callback_data Pointer to pass to callback - * Output: - - * In/Out: - - * - * Returns: CE_OKAY Read request registered - * CE_BAD_CHAN Channel id invalid - * CE_BUSY Someone else is reading all devices - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - * - * Register an asynchronous read across all devices. This is a 'fallback', - * which will be superseded (temporarily) by a registered reader or blocking - * read on a specific device. - */ - -ChanError angel_ChannelReadAll( ChannelID chanid, - ChanRx_CB_Fn callback, - void *callback_data); - - - -/* - * Function: angel_ChannelSendThenRead - * Purpose: blocking write to followed by read from a channel - * - * Params: - * Input: devid Device to use, or CH_DEFAULT_DEV - * chanid Channel to use for rx - * In/Out: buffer On entry: the packet to be sent - * On return: the packet received - * len On entry: length of packet to be sent - * On return: length of packet rx'd - * In/Out: - - * - * Returns: CE_OKAY Tx and Reception successful - * CE_BAD_CHAN Channel id invalid - * CE_ABANDONED Tx abandoned due to device switch - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: - - * - * Note that in the present version, if an asynchronous read has been - * registered, this will be refused with CE_BUSY. - */ -ChanError angel_ChannelSendThenRead(DeviceID devid, - ChannelID chanid, - p_Buffer *buffer, - unsigned *len); - - -/* - * Function: angel_ChannelSelectDevice - * Purpose: select the device to be used for all channel comms - * - * Params: - * Input: device ID of device to use as the default - * Output: - - * In/Out: - - * - * Returns: CE_OKAY Default device selected - * CE_BAD_DEV Invalid device ID - * - * Reads globals: - - * Modifies globals: - - * - * Other side effects: Any channel operations in progress are - * abandoned. - * - * select the device for all channels comms - */ - -ChanError angel_ChannelSelectDevice(DeviceID device); - - -/* - * Function: angel_ChannelReadActiveDevice - * Purpose: reads the device id of the currently active device - * - * Params: - * Input: device address of a DeviceID variable - * Output: *device ID of device currently being used - * In/Out: - - * - * Returns: CE_OKAY Default device selected - */ - -ChanError angel_ChannelReadActiveDevice(DeviceID *device); - -#endif /* ndef angel_channels_h */ - -/* EOF channels.h */ |