81 #ifndef _CL_IOC_API_H_
82 # define _CL_IOC_API_H_
107 # define CL_IOC_HEADER_VERSION 1
109 # define CL_IOC_NOTIFICATION_VERSION 1
115 # define CL_IOC_TIMEOUT_FOREVER ~0U
122 # define CL_IOC_UNRELIABLE_MESSAGING 0
128 # define CL_IOC_RELIABLE_MESSAGING (1<<0)
141 # define CL_IOC_NODE_UP 1
146 # define CL_IOC_NODE_DOWN 0
154 # define CL_IOC_LINK_UP 2
159 # define CL_IOC_LINK_DOWN 3
167 # define CL_IOC_BROADCAST_ADDRESS 0xffffffff
172 # define CL_IOC_RESERVED_ADDRESS 0
177 # define CL_IOC_GEO_ADDR_MAX_LENGTH 128
185 # define CL_IOC_PHYSICAL_ADDRESS_TYPE 0
190 # define CL_IOC_LOGICAL_ADDRESS_TYPE 1
195 # define CL_IOC_MULTICAST_ADDRESS_TYPE 2
200 # define CL_IOC_MASTER_ADDRESS_TYPE 3
205 # define CL_IOC_INTRANODE_ADDRESS_TYPE 4
208 # define CL_IOC_USER_ADDRESS_TYPE 10
213 # define CL_IOC_BROADCAST_ADDRESS_TYPE 0xff
243 CL_IOC_ORDERED_PRIORITY = 3,
248 CL_IOC_NOTIFICATION_PRIORITY = 4,
255 CL_IOC_RESERVED_PRIORITY_USER = 6,
257 CL_IOC_RESERVED_PRIORITY_USER_END = 16,
284 #define CL_IOC_ADDRESS_TYPE_BITS (0x8)
285 #define CL_IOC_ADDRESS_TYPE_MASK ((1<<CL_IOC_ADDRESS_TYPE_BITS)-1)
286 #define CL_IOC_NODE_MASK (~0U >> CL_IOC_ADDRESS_TYPE_BITS)
287 #define CL_IOC_ADDRESS_TYPE_SHIFT_WORD (32-CL_IOC_ADDRESS_TYPE_BITS)
288 #define CL_IOC_ADDRESS_TYPE_SHIFT_DWORD (64-CL_IOC_ADDRESS_TYPE_BITS)
293 # define CL_IOC_ADDRESS_TYPE_GET(param)\
294 ((ClUint32T)((*((ClUint64T*)(param))) >> CL_IOC_ADDRESS_TYPE_SHIFT_DWORD))
296 #define CL_IOC_ADDRESS_FORM(addrType,addr,compId) \
298 ( (((ClUint64T)(addrType)) & CL_IOC_ADDRESS_TYPE_MASK) << CL_IOC_ADDRESS_TYPE_SHIFT_DWORD ) | \
299 ( ( ((ClUint64T)(addr)) & CL_IOC_NODE_MASK) << 32 ) | \
300 ( ((ClUint64T)(compId)) & 0xffffffff ) \
303 #define CL_IOC_TIPC_ADDRESS_TYPE_FORM(t,v) (((t) << CL_IOC_ADDRESS_TYPE_SHIFT_WORD) | ( (v) & CL_IOC_NODE_MASK ) )
305 #define CL_IOC_TIPC_TYPE_FORM(v) \
306 CL_IOC_TIPC_ADDRESS_TYPE_FORM(CL_IOC_USER_ADDRESS_TYPE,v)
311 # define CL_IOC_LOGICAL_ADDRESS_FORM(compId)\
312 CL_IOC_ADDRESS_FORM(CL_IOC_LOGICAL_ADDRESS_TYPE, 0 , compId)
317 # define CL_IOC_MULTICAST_ADDRESS_FORM(addr, compId) \
318 CL_IOC_ADDRESS_FORM(CL_IOC_MULTICAST_ADDRESS_TYPE, addr, compId)
325 # define CL_IOC_TL_ACTIVE 0
331 # define CL_IOC_TL_STDBY 1
530 typedef enum ClIocQueueId
537 typedef struct ClIocQueueInfo
540 ClWaterMarkT queueWM;
543 typedef struct ClIocQueueStats
545 ClIocQueueInfoT queueInfo;
546 ClUint32T queueUtilisation;
549 typedef struct ClIocLibConfig
558 ClIocNodeAddressT nodeAddress;
566 ClUint32T iocMaxNumOfPriorities;
570 ClUint32T iocReassemblyTimeOut;
574 ClUint32T iocMaxNumOfXports;
578 ClUint32T iocHeartbeatTimeInterval;
582 ClUint32T iocTLMaxEntries;
585 ClIocQueueInfoT iocSendQInfo;
588 ClIocQueueInfoT iocRecvQInfo;
591 ClIocPortT iocNodeRepresentative;
594 ClBoolT isNodeRepresentative;
641 #define CL_IOC_TL_NO_REPLICATION 0
642 #define repliSemantics unused
683 typedef struct ClIocMcastUserInfo
685 ClIocMulticastAddressT mcastAddr;
687 } ClIocMcastUserInfoT;
742 CL_IN ClIocPortT portId,
743 CL_IN ClIocCommPortFlagsT portType,
744 CL_OUT ClIocCommPortHandleT * pIocCommPortHdl
778 CL_IN ClIocCommPortHandleT iocCommPortHdl
818 CL_IN ClIocCommPortHandleT portHandle,
852 CL_IN ClIocCommPortHandleT pIocCommPort,
853 CL_OUT ClIocPortT * pPortId
889 CL_IN ClIocPortT port,
996 CL_IN ClIocCommPortHandleT commPortHandle,
998 CL_IN ClUint8T protoType,
1061 CL_IN ClIocCommPortHandleT commPortHdl,
1067 ClRcT clIocReceiveAsync(
1068 CL_IN ClIocCommPortHandleT commPortHdl,
1074 ClRcT clIocReceiveWithBuffer(
1075 CL_IN ClIocCommPortHandleT commPortHdl,
1077 CL_IN ClUint8T *buffer,
1078 CL_IN ClUint32T bufSize,
1083 ClRcT clIocReceiveWithBufferAsync(
1084 CL_IN ClIocCommPortHandleT commPortHdl,
1086 CL_IN ClUint8T *buffer,
1087 CL_IN ClUint32T bufSize,
1124 CL_IN ClIocCommPortHandleT commPortHdl
1209 CL_IN ClUint32T compId
1390 ClRcT clIocTransparencyDeregisterNode(
1391 CL_IN ClIocNodeAddressT nodeId
1396 ClRcT clIocTransparencyLogicalToPhysicalAddrGet(
1397 CL_IN ClIocLogicalAddressT logicalAddr,
1399 CL_OUT ClUint32T * pNoEntries