##// END OF EJS Templates
changes on the gresb class, object ready for usage in the rmapplugin
changes on the gresb class, object ready for usage in the rmapplugin

File last commit:

r0:081a6eb3cced default
r7:7c1589fec151 default
Show More
spw_config_library.h
656 lines | 27.7 KiB | text/x-c | CLexer
/******************************************************************************/
/* */
/* spw_config_library.h */
/* */
/* Declaration of the functions, and definition of macros provided by the */
/* SpaceWire Router Configuration Library for the SpaceWire USB and */
/* SpaceWire PCI drivers. */
/* */
/* Version 2.60 - January 5th 2012 */
/* */
/* Version 2.60 - 05/04/12 */
/* ======================= */
/* Updated declarations to replace CFGSpaceWire_EnableReadOnAllPorts */
/* with CFGSpaceWire_EnableReceiveOnAllPorts and */
/* CFGSpaceWire_IsReadingOnAllPortsEnabled with */
/* CFGSpaceWire_IsReceiveOnAllPortsEnabled. */
/* */
/* Version 2.54 - 10/12/10 */
/* ======================= */
/* Replaced CFGSpaceWire_RTOutputPorts with */
/* CFGSpaceWire_RTGetOutputPorts, which doesn't unnecessarily shift the */
/* output port bits and is consistent with */
/* CFGSpaceWire_RTBuildRoutingTableEntry. */
/* */
/* Version 2.53 - 26/02/09 */
/* ======================= */
/* Updated the calling convention used in the function declarations to */
/* __stdcall on Windows. */
/* */
/* Version 2.52, 04/11/08 */
/* ====================== */
/* Added support for precision transmit rate on new Router-USB. */
/* Added chip ID values. */
/* */
/* Version 2.51, 21/10/08 */
/* ====================== */
/* Updated to support Windows. */
/* */
/* Version 2.50, 08/11/06 */
/* ====================== */
/* Initial version, following change to new structure. */
/* */
/* Copyright (c) 2012, Stuart Mills, */
/* STAR-Dundee, */
/* c/o School of Computing, */
/* University of Dundee, */
/* Dundee, DD1 4HN, */
/* Scotland, UK. */
/* http://www.star-dundee.com */
/* e-mail: support@star-dundee.com */
/* */
/******************************************************************************/
#ifndef SPACEWIRE_ROUTER_LIBRARY
#define SPACEWIRE_ROUTER_LIBRARY
#include "star_dundee_types.h"
#ifdef __cplusplus
extern "C" {
#endif
#if defined(_WIN32) || defined(_WIN64)
/* Windows specifc functions and macros */
#ifdef ROUTERCONFIGURATIONLIBRARY_EXPORTS
#define ROUTER_CONFIG_LIBRARY __declspec(dllexport)
#else
#define ROUTER_CONFIG_LIBRARY __declspec(dllimport)
#endif
/* The calling convention to be used */
#ifdef _WIN64
#define ROUTER_CONFIG_CC
#else
#define ROUTER_CONFIG_CC __stdcall
#endif /* WIN64 */
#include "windows.h"
#else /* _WIN32 */
/* Linux specific functions and macros */
#define ROUTER_CONFIG_LIBRARY
#define ROUTER_CONFIG_CC
#endif /* _WIN32 */
/* Possible bit values */
#define BIT0 (0x00000001)
#define BIT1 (0x00000002)
#define BIT2 (0x00000004)
#define BIT3 (0x00000008)
#define BIT4 (0x00000010)
#define BIT5 (0x00000020)
#define BIT6 (0x00000040)
#define BIT7 (0x00000080)
#define BIT8 (0x00000100)
#define BIT9 (0x00000200)
#define BIT10 (0x00000400)
#define BIT11 (0x00000800)
#define BIT12 (0x00001000)
#define BIT13 (0x00002000)
#define BIT14 (0x00004000)
#define BIT15 (0x00008000)
#define BIT16 (0x00010000)
#define BIT17 (0x00020000)
#define BIT18 (0x00040000)
#define BIT19 (0x00080000)
#define BIT20 (0x00100000)
#define BIT21 (0x00200000)
#define BIT22 (0x00400000)
#define BIT23 (0x00800000)
#define BIT24 (0x01000000)
#define BIT25 (0x02000000)
#define BIT26 (0x04000000)
#define BIT27 (0x08000000)
#define BIT28 (0x10000000)
#define BIT29 (0x20000000)
#define BIT30 (0x40000000)
#define BIT31 (0x80000000)
/* Exported enums and structs */
/* Read write address errors */
typedef enum
{
CFG_TRANSFER_SUCCESS = 0x00,
CFG_TRANSMIT_PACKET_FAILURE = 0x01,
CFG_REPLY_PACKET_FAILURE = 0x02,
CFG_REPLY_PACKET_TOO_BIG = 0x03,
CFG_REPLY_PACKET_TOO_SMALL = 0x04,
CFG_REPLY_PACKET_NAK = 0x05,
CFG_REPLY_PACKET_CHECKSUM_ERROR = 0x06,
} CFG_SPACEWIRE_STATUS;
/* Length of port timeout */
typedef enum
{
CFG_PORT_TIMEOUT_100US = 0x0,
CFG_PORT_TIMEOUT_1MS = 0x1,
CFG_PORT_TIMEOUT_10MS = 0x2,
CFG_PORT_TIMEOUT_100MS = 0x3,
CFG_PORT_TIMEOUT_1S = 0x4,
} CFG_SPACEWIRE_PORT_TIMEOUT;
/* SpaceWire Port errors */
#define CFG_SPACEWIRE_NO_ERRORS (0)
#define CFG_SPACEWIRE_ERROR_ACTIVE (BIT0)
#define CFG_SPACEWIRE_PACKET_ADDRESS_ERROR (BIT1)
#define CFG_SPACEWIRE_PORT_TIMEOUT_ERROR (BIT2)
#define CFG_SPACEWIRE_DISCONNECT_ERROR (BIT3)
#define CFG_SPACEWIRE_PARITY_ERROR (BIT4)
#define CFG_SPACEWIRE_ESCAPE_ERROR (BIT5)
#define CFG_SPACEWIRE_CREDIT_ERROR (BIT6)
#define CFG_SPACEWIRE_CHARACTER_SEQUENCE_ERROR (BIT7)
#define CFG_SPACEWIRE_ERROR_BITS (BIT0 | BIT1 | BIT2 | BIT3 | \
BIT4 | BIT5 | BIT6 | BIT7)
/* Config Port errors */
#define CFG_CONFIG_NO_ERRORS (0)
#define CFG_CONFIG_ERROR_ACTIVE (BIT0)
/* Config Port errors (non-RMAP) */
#define CFG_CONFIG_PACKET_ADDRESS_ERROR (BIT1)
#define CFG_CONFIG_PORT_TIMEOUT_ERROR (BIT2)
#define CFG_CONFIG_CHECKSUM_ERROR (BIT3)
#define CFG_CONFIG_TOO_SHORT_ERROR (BIT4)
#define CFG_CONFIG_TOO_LONG_ERROR (BIT5)
#define CFG_CONFIG_PACKET_EEP_ERROR (BIT6)
#define CFG_CONFIG_PROTOCOL_BYTE_ERROR (BIT7)
#define CFG_CONFIG_INVALID_REGISTER_ERROR (BIT8)
#define CFG_CONFIG_ERROR_BITS (BIT0 | BIT1 | BIT2 | BIT3 | \
BIT4 | BIT5 | BIT6 | BIT7 | \
BIT8)
/* Config Port errors (RMAP) */
#define CFG_CONFIG_RMAP_PORT_TIMEOUT_ERROR (BIT1)
#define CFG_CONFIG_RMAP_INVALID_HEADER_CRC (BIT2)
#define CFG_CONFIG_RMAP_INVALID_DATA_CRC (BIT3)
#define CFG_CONFIG_RMAP_INVALID_DESTINATION_KEY (BIT4)
#define CFG_CONFIG_RMAP_COMMAND_NOT_IMPLEMENTED (BIT5)
#define CFG_CONFIG_RMAP_INVALID_DATA_LENGTH (BIT6)
#define CFG_CONFIG_RMAP_INVALID_RMW_DATA_LENGTH (BIT7)
#define CFG_CONFIG_RMAP_INVALID_DESTINATION_ADDRESS (BIT8)
#define CFG_CONFIG_RMAP_EARLY_EOP (BIT9)
#define CFG_CONFIG_RMAP_LATE_EOP (BIT10)
#define CFG_CONFIG_RMAP_EARLY_EEP (BIT11)
#define CFG_CONFIG_RMAP_LATE_EEP (BIT12)
#define CFG_CONFIG_RMAP_VERIFY_BUFFER_OVERRUN_ERROR (BIT13)
#define CFG_CONFIG_RMAP_INVALID_REGISTER_ADDRESS (BIT14)
#define CFG_CONFIG_RMAP_UNSUPPORTED_PROTOCOL_ERROR (BIT15)
#define CFG_CONFIG_RMAP_SOURCE_LOGICAL_ADDRESS_ERROR (BIT16)
#define CFG_CONFIG_RMAP_SOURCE_PATH_ADDRESS_ERROR (BIT17)
#define CFG_CONFIG_RMAP_CARGO_TOO_LARGE (BIT18)
#define CFG_CONFIG_RMAP_UNUSED_COMMAND_OR_PACKET_TYPE (BIT19)
#define CFG_CONFIG_RMAP_ERROR_BITS (BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | \
BIT5 | BIT6 | BIT7 | BIT8 | BIT9 | \
BIT10 | BIT11 | BIT12 | BIT13 | \
BIT14 | BIT15 | BIT16 | BIT17 | \
BIT18 | BIT19)
/* External Port errors */
#define CFG_EXTERNAL_NO_ERRORS (0)
#define CFG_EXTERNAL_ERROR_ACTIVE (BIT0)
#define CFG_EXTERNAL_PACKET_ADDRESS_ERROR (BIT1)
#define CFG_EXTERNAL_PORT_TIMEOUT_ERROR (BIT2)
#define CFG_EXTERNAL_INPUT_BUFFER_EMPTY_ERROR (BIT3)
#define CFG_EXTERNAL_INPUT_BUFFER_FULL_ERROR (BIT4)
#define CFG_EXTERNAL_OUTPUT_BUFFER_EMPTY_ERROR (BIT5)
#define CFG_EXTERNAL_OUTPUT_BUFFER_FULL_ERROR (BIT6)
#define CFG_EXTERNAL_ERROR_BITS (BIT0 | BIT1 | BIT2 | BIT3 | \
BIT4 | BIT5 | BIT6)
/* SpaceWire Port interface state */
#define CFG_SPACEWIRE_ERROR_RESET (0)
#define CFG_SPACEWIRE_ERROR_WAIT (BIT0)
#define CFG_SPACEWIRE_READY (BIT1)
#define CFG_SPACEWIRE_STARTED (BIT1 | BIT0)
#define CFG_SPACEWIRE_CONNECTING (BIT2)
#define CFG_SPACEWIRE_RUN (BIT2 | BIT0)
/* Port type */
#define CFG_CONFIGURATION_PORT (0)
#define CFG_SPACEWIRE_SERIAL_PORT (BIT0)
#define CFG_SPACEWIRE_EXTERNAL_PORT (BIT1)
/* SpaceWire Port control bits */
#define CFG_SPACEWIRE_INTERFACE_STATE_START (8)
#define CFG_SPACEWIRE_INTERFACE_STATE (BIT8 | BIT9 | BIT10)
#define CFG_SPACEWIRE_RUNNING (BIT11)
#define CFG_SPACEWIRE_AUTOSTART (BIT12)
#define CFG_SPACEWIRE_START (BIT13)
#define CFG_SPACEWIRE_DISABLE (BIT14)
#define CFG_SPACEWIRE_TRISTATE (BIT15)
#define CFG_SPACEWIRE_RATE (BIT16 | BIT17 | BIT18 | \
BIT19 | BIT20 | BIT21 | BIT22)
#define CFG_SPACEWIRE_RATE_START (16)
/* Bits in the GAR Table */
#define CFG_GAR_OUTPUT_PORTS_START (1)
#define CFG_GAR_OUTPUT_PORTS (BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | \
BIT6 | BIT7 | BIT8 | BIT9 | BIT10 | BIT11 | BIT12 | BIT13 | BIT14 | \
BIT15 | BIT16 | BIT17 | BIT18 | BIT19 | BIT20 | BIT21 | BIT22 | \
BIT23 | BIT24 | BIT25 | BIT26 | BIT27 | BIT28)
#define CFG_GAR_DEL_HEAD (BIT29)
#define CFG_GAR_PRIORITY (BIT30)
#define CFG_GAR_INVALID_ADDR (BIT31)
/* Bits in the router control register */
#define CFG_RC_TIMEOUT_ENABLE_START (0)
#define CFG_RC_TIMEOUT_ENABLE (BIT0)
#define CFG_RC_TIMEOUT_VALUE_START (1)
#define CFG_RC_TIMEOUT_VALUE (BIT1 | BIT2 | BIT3)
#define CFG_RC_DISABLE_ON_SILENCE (BIT4)
#define CFG_RC_DISABLE_ON_SILENCE_START (4)
#define CFG_RC_START_ON_REQUEST (BIT5)
#define CFG_RC_START_ON_REQUEST_START (5)
#define CFG_RC_SELF_ADDRESSING (BIT6)
#define CFG_RC_SELF_ADDRESSING_START (6)
#define CFG_RC_INTERFACE (BIT7)
#define CFG_RC_INTERFACE_START (7)
#define CFG_RC_INTERFACE_IDENT (BIT8)
#define CFG_RC_INTERFACE_IDENT_START (8)
/* The bits shared by all ports */
#define CFG_PORT_CONNECTION (BIT24 | BIT25 | BIT26 | BIT27 | BIT28)
#define CFG_PORT_CONNECTION_START (24)
#define CFG_PORT_TYPE (BIT29 | BIT30 | BIT31)
#define CFG_PORT_TYPE_START (29)
/* Network discovery register values */
#define CFG_NETD_TYPE (BIT0 | BIT1 | BIT2 | BIT3)
#define CFG_NETD_TYPE_START (0)
#define CFG_NETD_RETURN_PORT (BIT4 | BIT5 | BIT6 | BIT7)
#define CFG_NETD_RETURN_PORT_START (4)
#define CFG_NETD_RUNNING_PORTS (BIT8 | BIT9 | BIT10 | BIT11 | BIT12 | \
BIT13 | BIT14 | BIT15 | BIT16 | BIT17 | BIT18 | BIT19 | BIT20 | \
BIT21 | BIT22 | BIT23 | BIT24 | BIT25 | BIT26 | BIT27 | BIT28 | \
BIT29 | BIT30 | BIT31)
#define CFG_NETD_RUNNING_PORTS_START (8)
/* Values in the ID register */
#define CFG_ID_VERSION (BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | \
BIT5 | BIT6 | BIT7)
#define CFG_ID_VERSION_START (0)
#define CFG_ID_CHIP (BIT8 | BIT9 | BIT10 | BIT11 | BIT12 | \
BIT13 | BIT14 | BIT15)
#define CFG_ID_CHIP_START (8)
#define CFG_ID_MANUFACTURER (BIT16 | BIT17 | BIT18 | BIT19 | \
BIT20 | BIT21 | BIT22 | BIT23)
#define CFG_ID_MANUFACTURER_START (16)
/* Values in the Time-Code register */
#define CFG_TC_VALUE (BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | \
BIT5)
#define CFG_TC_VALUE_START (0)
#define CFG_TC_FLAGS (BIT6 | BIT7)
#define CFG_TC_FLAGS_START (6)
/* Values for the Router Base Clock Select */
#define CFG_RTR_CLK_100_MBITS (0)
#define CFG_RTR_CLK_200_MBITS (BIT0)
/* Values for the Brick Base Clock */
#define CFG_BRK_CLK_100_MHZ (0)
#define CFG_BRK_CLK_120_MHZ (BIT0)
#define CFG_BRK_CLK_140_MHZ (BIT1)
#define CFG_BRK_CLK_160_MHZ (BIT0 | BIT1)
#define CFG_BRK_CLK_180_MHZ (BIT2)
#define CFG_BRK_CLK_200_MHZ (BIT2 | BIT0)
/* Values for the Brick Base Divider */
#define CFG_BRK_DVDR_1 (0)
#define CFG_BRK_DVDR_2 (BIT0)
#define CFG_BRK_DVDR_4 (BIT1)
/* Values in the Tx register */
#define CFG_TX_BRICK_2MBITS (BIT27)
#define CFG_TX_BRICK_2MBITS_START (27)
/* Values in the Precision Transmit Rate register */
#define CFG_PT_ENABLE (BIT16)
#define CFG_PT_ENABLE_START (16)
#define CFG_PT_READY (BIT17)
#define CFG_PT_READY_START (17)
#define CFG_PT_IN_USE (BIT20)
#define CFG_PT_IN_USE_START (20)
#define CFG_PT_RATE_BITS (BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5 | BIT6 | \
BIT7 | BIT8 | BIT9 | BIT10 | BIT11 | BIT12 | \
BIT13 | BIT14 | BIT15 )
#define CFG_PT_DIVIDER_CONSTANT ((double)(pow((double)2, (double)48) / (double)600))
/* Chip ID values */
#define CFG_CID_ROUTER_ASIC (0) /* SpaceWire Router ASIC and IP */
#define CFG_CID_ROUTER_USB (1) /* Original SpaceWire Router-USB */
#define CFG_CID_USB_BRICK (2) /* SpaceWire-USB Brick */
#define CFG_CID_FEIC (4) /* The FEIC chip */
#define CFG_CID_ROUTER_USB_2 (5) /* New SpaceWire Router-USB */
#define CFG_CID_PCI_MK2 (7) /* SpaceWire PCI Mk2 */
#define CFG_CID_PCI_EXPRESS (8) /* SpaceWire PCI Express */
#define CFG_CID_RTC (9) /* RTC Development Unit */
#define CFG_CID_CONFORMANCE_TESTER (10) /* SpaceWire Conformance Tester */
#define CFG_CID_EGSE (11) /* SpaceWire EGSE */
#define CFG_CID_STAR_FIRE (12) /* STAR Fire */
#define CFG_CID_WBS_MK2 (14) /* WBS Mk2 */
/* Addresses which can be read from and written to */
#define CFG_EXTENDED_ADDRESS (0x100)
#define CFG_ADDR_NET_DISC (CFG_EXTENDED_ADDRESS + 0)
#define CFG_ADDR_NET_DISC_IDENT (CFG_EXTENDED_ADDRESS + 1)
#define CFG_ADDR_ROUTER_CONTROL (CFG_EXTENDED_ADDRESS + 2)
#define CFG_ADDR_ERRORS (CFG_EXTENDED_ADDRESS + 3)
#define CFG_ADDR_TIMECODE (CFG_EXTENDED_ADDRESS + 4)
#define CFG_ADDR_IDS (CFG_EXTENDED_ADDRESS + 5)
#define CFG_ADDR_GP (CFG_EXTENDED_ADDRESS + 6)
#define CFG_ADDR_TICK (CFG_EXTENDED_ADDRESS + 7)
#define CFG_ADDR_TX_RATE (CFG_EXTENDED_ADDRESS + 8)
#define CFG_ADDR_PRECISION_1 (CFG_EXTENDED_ADDRESS + 0xC)
#define CFG_ADDR_PRECISION_2 (CFG_EXTENDED_ADDRESS + 0xD)
/* Exported functions */
/* Version information */
ROUTER_CONFIG_LIBRARY double ROUTER_CONFIG_CC CFGSpaceWire_GetAPIVersion(void);
/* Configuration address stack manipulation functions */
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_StackClear(void);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_AddrStackPush(
U8 dwAddress);
ROUTER_CONFIG_LIBRARY U8 ROUTER_CONFIG_CC CFGSpaceWire_AddrStackPop(void);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RetAddrStackPush(
U8 dwAddress);
ROUTER_CONFIG_LIBRARY U8 ROUTER_CONFIG_CC CFGSpaceWire_RetAddrStackPop(void);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_SetProtocolByte(
U8 ProtocolByte);
ROUTER_CONFIG_LIBRARY U8 ROUTER_CONFIG_CC CFGSpaceWire_GetProtocolByte(void);
/* RMAP functions */
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_EnableRMAP(
char useRMAP);
ROUTER_CONFIG_LIBRARY char ROUTER_CONFIG_CC CFGSpaceWire_IsRMAPEnabled();
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_SetRMAPDestinationKey(
U8 destinationKey);
ROUTER_CONFIG_LIBRARY U8 ROUTER_CONFIG_CC CFGSpaceWire_GetRMAPDestinationKey();
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_SetRMAPAlignment(
U8 alignment);
ROUTER_CONFIG_LIBRARY U8 ROUTER_CONFIG_CC CFGSpaceWire_GetRMAPAlignment();
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_EnableReceiveOnAllPorts(char enable);
ROUTER_CONFIG_LIBRARY char ROUTER_CONFIG_CC
CFGSpaceWire_IsReceiveOnAllPortsEnabled();
/* Ignoring replies to write commands functions */
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_IgnoreWriteReplies(
char ignore);
ROUTER_CONFIG_LIBRARY char ROUTER_CONFIG_CC
CFGSpaceWire_AreWriteRepliesIgnored();
/* Configuration address read and write functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_ReadAddress(
star_device_handle hDevice, U32 dwAddress, U32 *dwData);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_WriteAddress(
star_device_handle hDevice, U32 dwAddress, U32 dwData);
/* Router link functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_StartLink(
star_device_handle hDevice, U32 dwLinkNum);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_StopLink(
star_device_handle hDevice, U32 dwLinkNum);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_TriStateLink(
star_device_handle hDevice, U32 dwLinkNum, char bEnabled);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetLinkSpeed(
star_device_handle hDevice, U32 dwLinkNum, U32 dwSpeed);
/* Routing table functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetRoutingTableEntry(
star_device_handle hDevice, U32 nLogicalAddress, U32 *dwRoutingTableEntry);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetRoutingTableEntry(
star_device_handle hDevice, U32 nLogicalAddress, U32 dwRoutingTableEntry);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_ClearRoutingTableEntry(
star_device_handle hDevice, U32 nLogicalAddress);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RTIsEnabled(
U32 dwRoutingTableEntry, char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RTIsDelHead(
U32 dwRoutingTableEntry, char *bDelHead);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RTIsPriority(
U32 dwRoutingTableEntry, char *bPriority);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RTOutputPorts(
U32 dwRoutingTableEntry, U32 *dwOutputPorts);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RTGetOutputPorts(
U32 dwRoutingTableEntry, U32 *dwOutputPorts);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_RTBuildRoutingTableEntry(U32 *dwRoutingTableEntry,
U32 dwOutputPorts, char bDelHead, char bPriority);
/* Link status control functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetLinkStatusControl(
star_device_handle hDevice, U32 dwLinkNum, U32 *dwStatusControl);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetLinkStatusControl(
star_device_handle hDevice, U32 dwLinkNum, U32 dwStatusControl);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSErrorStatus(
U32 dwStatusControl, U32 *dwErrorStatus);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSConfigErrorStatus(
U32 dwStatusControl, U32 *dwErrorStatus);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSExternalErrorStatus(
U32 dwStatusControl, U32 *dwErrorStatus);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSLinkState(
U32 dwStatusControl, U32 *dwLinkStatus);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSIsLinkRunning(
U32 dwStatusControl, char *isLinkRunning);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSIsAutoStart(
U32 dwStatusControl, char *isAutoStart);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSEnableAutoStart(
U32 *dwStatusControl, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSIsStart(
U32 dwStatusControl, char *isStart);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSEnableStart(
U32 *dwStatusControl, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSIsDisabled(
U32 dwStatusControl, char *isDisabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSEnableDisabled(
U32 *dwStatusControl, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSIsTristate(
U32 dwStatusControl, char *isTristate);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSEnableTristate(
U32 *dwStatusControl, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSOperatingSpeed(
U32 dwStatusControl, U32 *dwOperatingSpeed);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSSetOperatingSpeed(
U32 *dwStatusControl, U32 dwOperatingSpeed);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSOutputPortConnection(
U32 dwStatusControl, U32 *dwOutputPortConnection);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_LSPortType(
U32 dwStatusControl, U32 *dwPortType);
/* Network discovery information retreival */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_GetNetworkDiscoveryValue(star_device_handle hDevice,
U32 *dwNetworkDiscovery);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_NDDeviceType(
U32 dwNetDisc, U32 *dwDeviceType);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_NDReturnPort(
U32 dwNetDisc, U32 *dwReturnPort);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_NDRunningLinks(
U32 dwNetDisc, U32 *dwRunningLinks);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_NDNumberLinks(
U32 dwNetDisc, U32 *dwNumberLinks);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetNumberLinks(
star_device_handle hDevice, U32 *dwNumLinks);
/* Router identity register functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetNetworkID(
star_device_handle hDevice, U32 dwNetworkID);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetNetworkID(
star_device_handle hDevice, U32 *dwNetworkID);
/* Router control register functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetPortTimeout(
star_device_handle hDevice, char bEnabled,
CFG_SPACEWIRE_PORT_TIMEOUT timeout);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetPortTimeout(
star_device_handle hDevice, char *bEnabled,
CFG_SPACEWIRE_PORT_TIMEOUT *timeout);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_IsPortTimeoutEnabled(
star_device_handle hDevice, char *bEnabled);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetAsInterface(
star_device_handle hDevice, char bEnabled, char bAddIdentifier);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_GetRouterControlRegister(star_device_handle hDevice,
U32 *dwRouterCtrlReg);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_SetRouterControlRegister(star_device_handle hDevice,
U32 dwRouterCtrlReg);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCGetTimeoutEnabled(
U32 dwRouterCtrlReg, char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCSetTimeoutEnabled(
U32 *dwRouterCtrlReg, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCGetTimeoutSelection(
U32 dwRouterCtrlReg, U32 *dwSelection);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCSetTimeoutSelection(
U32 *dwRouterCtrlReg, U32 dwSelection);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCGetDisableOnSilence(
U32 dwRouterCtrlReg, char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCSetDisableOnSilence(
U32 *dwRouterCtrlReg, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCGetStartOnRequest(
U32 dwRouterCtrlReg, char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCSetStartOnRequest(
U32 *dwRouterCtrlReg, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCGetSelfAddressing(
U32 dwRouterCtrlReg, char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCSetSelfAddressing(
U32 *dwRouterCtrlReg, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCGetInterface(
U32 dwRouterCtrlReg, char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_RCSetInterface(
U32 *dwRouterCtrlReg, char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_RCGetInterfaceIdentifier(U32 dwRouterCtrlReg, char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_RCSetInterfaceIdentifier(U32 *dwRouterCtrlReg, char bEnabled);
/* Error active register functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetErrorStatus(
star_device_handle hDevice, U32 *dwErrorStatus);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_ClearErrorStatus(
star_device_handle hDevice, U32 dwPorts);
/* Time-Code register functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetTimecodeRegister(
star_device_handle hDevice, U32 *dwTimecodeReg);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_TCGetValue(
U32 dwTimecodeReg, U32 *dwValue);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_TCGetFlags(
U32 dwTimecodeReg, U32 *dwValue);
/* Manufacturer and Chip ID register functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetIDRegister(
star_device_handle hDevice, U32 *dwIDs);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_IDGetManufacturer(
U32 dwIDs, U32 *dwManufacturerID);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_IDGetChipID(U32 dwIDs,
U32 *dwChipID);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC CFGSpaceWire_IDGetVersion(U32 dwIDs,
U32 *dwVersion);
/* General purpose register functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetGeneralPurposeStatus(
star_device_handle hDevice, U32 *dwGeneralPurposeStatus);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetGeneralPurposeStatus(
star_device_handle hDevice, U32 dwGeneralPurposeStatus);
/* Tick enable register functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_GetTickEnableStatus(
star_device_handle hDevice, U32 *dwTickEnableStatus);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC CFGSpaceWire_SetTickEnableStatus(
star_device_handle hDevice, U32 dwTickEnableStatus);
/* Base Transmit Rate functions */
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_SetRouterBaseTransmitRate(star_device_handle hDevice,
U32 dwBaseClkSel);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_GetRouterBaseTransmitRate(star_device_handle hDevice,
U32 *dwBaseClkSel);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_SetBrickBaseTransmitRate(star_device_handle hDevice,
U32 dwBaseClk, U32 dwBaseDvdr, U32 dwEnableClk);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_GetBrickBaseTransmitRate(star_device_handle hDevice,
U32 *dwBaseClk, U32 *dwBaseDvdr, U32 *dwEnableClk);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_GetPrecisionTransmitRegister(star_device_handle hDevice,
U32 *dwPrecisionTransmit);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_SetPrecisionTransmitRegister(star_device_handle hDevice,
U32 dwPrecisionTransmit);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_PTGetPrecisionTransmitEnabled(U32 dwPrecisionTransmit,
char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_PTSetPrecisionTransmitEnabled(U32 *dwPrecisionTransmit,
char bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_PTGetPrecisionTransmitReady(U32 dwPrecisionTransmit,
char *bEnabled);
ROUTER_CONFIG_LIBRARY void ROUTER_CONFIG_CC
CFGSpaceWire_PTGetPrecisionTransmitInUse(U32 dwPrecisionTransmit,
char *bEnabled);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_GetPrecisionTransmitRate(star_device_handle hDevice,
double *PrecisionTransmitRate);
ROUTER_CONFIG_LIBRARY int ROUTER_CONFIG_CC
CFGSpaceWire_SetPrecisionTransmitRate(star_device_handle hDevice,
double PrecisionTransmitRate);
#ifdef __cplusplus
}
#endif
#endif /* SPACEWIRE_ROUTER_LIBRARY */