18 #ifdef epicsExportSharedSymbols 19 # define rsrvRestore_epicsExportSharedSymbols 20 # undef epicsExportSharedSymbols 28 #include "dbChannel.h" 30 #define CA_MINOR_PROTOCOL_REVISION 13 37 #ifdef rsrvRestore_epicsExportSharedSymbols 38 #define epicsExportSharedSymbols 89 struct sockaddr_in addr;
166 unsigned int startbcast:1;
174 # define GLBLTYPE_INIT(A) = A 176 # define GLBLTYPE extern 177 # define GLBLTYPE_INIT(A) 184 # define DLOG(LEVEL,ARGSINPAREN) \ 185 if (CASDEBUG > LEVEL) errlogPrintf ARGSINPAREN 187 # define DLOG(LEVEL,ARGSINPAREN) 218 #define CAS_HASH_TABLE_SIZE 4096 220 #define SEND_LOCK(CLIENT) epicsMutexMustLock((CLIENT)->lock) 221 #define SEND_UNLOCK(CLIENT) epicsMutexUnlock((CLIENT)->lock) 223 #define LOCK_CLIENTQ epicsMutexMustLock (clientQlock); 224 #define UNLOCK_CLIENTQ epicsMutexUnlock (clientQlock);
epicsTimeStamp time_at_creation
epicsThreadPrivateId rsrvCurrentClient
void cas_commit_msg(struct client *pClient, ca_uint32_t size)
An EPICS-specific replacement for ANSI C's assert.
GLBLTYPE unsigned int threadPrios[5]
GLBLTYPE SOCKET beaconSocket
struct rsrv_put_notify * pPutNotify
GLBLTYPE ELLLIST casMCastAddrList
void cas_send_bs_msg(struct client *pclient, int lock_needed)
void casExpandRecvBuffer(struct client *pClient, ca_uint32_t size)
GLBLTYPE void * rsrvSmallBufFreeListTCP
GLBLTYPE epicsMutexId clientQlock
pvd::StructureConstPtr type
struct caHdrLargeArray caHdrLargeArray
void rsrv_extra_labor(void *pArg)
#define ELLLIST_INIT
Value of an empty list.
unsigned short ca_uint16_t
GLBLTYPE ELLLIST casIntfAddrList
A doubly-linked list library.
GLBLTYPE ELLLIST beaconAddrList
GLBLTYPE void * rsrvClientFreeList
int rsrv_version_reply(struct client *client)
epicsMutexId chanListLock
void destroy_tcp_client(struct client *)
int rsrvCheckPut(const struct channel_in_use *pciu)
epicsTimeStamp time_at_last_recv
APIs for the epicsMutex mutual exclusion semaphore.
unsigned recvBytesToDrain
GLBLTYPE void * rsrvLargeBufFreeListTCP
void cas_set_header_cid(struct client *pClient, ca_uint32_t)
void cas_set_header_count(struct client *pClient, ca_uint32_t count)
void casAttachThreadToClient(struct client *)
struct client * create_tcp_client(SOCKET sock, const osiSockAddr *peerAddr)
GLBLTYPE BUCKET * pCaBucket
GLBLTYPE enum ctl castcp_ctl
GLBLTYPE epicsEventId casudp_startStopEvent
APIs for the epicsEvent binary semaphore.
GLBLTYPE void * rsrvChanFreeList
GLBLTYPE unsigned short ca_beacon_port
GLBLTYPE unsigned rsrvSizeofLargeBufTCP
GLBLTYPE void * rsrvEventFreeList
void casExpandSendBuffer(struct client *pClient, ca_uint32_t size)
unsigned rsrvSizeOfPutNotify(struct rsrv_put_notify *pNotify)
GLBLTYPE epicsEventId castcp_startStopEvent
ELLLIST chanPendingUpdateARList
GLBLTYPE epicsUInt32 * casIgnoreAddrs
EPICS time stamp, for use from C code.
GLBLTYPE enum ctl beacon_ctl
void rsrv_online_notify_task(void *)
A hash table. Do not use for new code.
GLBLTYPE unsigned short ca_server_port
GLBLTYPE epicsEventId beacon_startStopEvent
void camsgtask(void *client)
int camessage(struct client *client)
struct channel_in_use * pciu
unsigned minor_version_number
void rsrvFreePutNotify(struct client *pClient, struct rsrv_put_notify *pNotify)
EPICS time-stamps (epicsTimeStamp), epicsTime C++ class and C functions for handling wall-clock times...
void destroy_client(struct client *)
epicsMutexId putNotifyLock
void cas_send_dg_msg(struct client *pclient)
C++ and C descriptions for a thread.
struct event_block * pdbev
epicsTimeStamp time_at_last_send
GLBLTYPE unsigned rsrvChannelCount
GLBLTYPE unsigned short ca_udp_port
int cas_copy_in_header(struct client *pClient, ca_uint16_t response, ca_uint32_t payloadSize, ca_uint16_t dataType, ca_uint32_t nElem, ca_uint32_t cid, ca_uint32_t responseSpecific, void **pPayload)
GLBLTYPE enum ctl casudp_ctl
GLBLTYPE void * rsrvPutNotifyFreeList
Internal: Hash table structure.
struct client * create_client(SOCKET sock, int proto)
void initializePutNotifyFreeList(void)