7 int test_and_set(volatile unsigned int *addr);
8 void UnLock(volatile unsigned int *addr);
10 typedef struct socknode {
13 struct socknode *next;
16 typedef struct sockPoolHashTable {
20 volatile unsigned int mylock;
21 } sockPoolHashTable_t;
23 void addSockWithLock(sockPoolHashTable_t *sockhash, socknode_t *ptr);
24 sockPoolHashTable_t *createSockPool(sockPoolHashTable_t *, unsigned int);
25 int getSock(sockPoolHashTable_t *, unsigned int);
26 int getSock2(sockPoolHashTable_t *, unsigned int);
27 int getSock2WithLock(sockPoolHashTable_t *h, unsigned int);
28 int getSockWithLock(sockPoolHashTable_t *, unsigned int);
29 void freeSock(sockPoolHashTable_t *, unsigned int, int);
30 void freeSockWithLock(sockPoolHashTable_t *, unsigned int, int);
31 void insToList(sockPoolHashTable_t *, socknode_t *);
32 void insToListWithLock(sockPoolHashTable_t *, socknode_t *);
33 int createNewSocket(unsigned int);
36 /************************************************
37 * Array Implementation data structures
38 ***********************************************/
39 #define MAX_CONN_PER_MACHINE 10
40 typedef struct sock_pool {
46 sock_pool_t *initSockPool(unsigned int *, int);
47 int getSock(sock_pool_t *, unsigned int);
48 int freeSock(sock_pool_t *, int);