This source file includes following definitions.
- atid2entry
- stid2entry
- lookup_tid
- lookup_stid
- lookup_atid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #ifndef _CHELSIO_DEFS_H
33 #define _CHELSIO_DEFS_H
34
35 #include <linux/skbuff.h>
36 #include <net/tcp.h>
37
38 #include "t3cdev.h"
39
40 #include "cxgb3_offload.h"
41
42 #define VALIDATE_TID 1
43
44
45
46
47 static inline union active_open_entry *atid2entry(const struct tid_info *t,
48 unsigned int atid)
49 {
50 return &t->atid_tab[atid - t->atid_base];
51 }
52
53 static inline union listen_entry *stid2entry(const struct tid_info *t,
54 unsigned int stid)
55 {
56 return &t->stid_tab[stid - t->stid_base];
57 }
58
59
60
61
62 static inline struct t3c_tid_entry *lookup_tid(const struct tid_info *t,
63 unsigned int tid)
64 {
65 struct t3c_tid_entry *t3c_tid = tid < t->ntids ?
66 &(t->tid_tab[tid]) : NULL;
67
68 return (t3c_tid && t3c_tid->client) ? t3c_tid : NULL;
69 }
70
71
72
73
74 static inline struct t3c_tid_entry *lookup_stid(const struct tid_info *t,
75 unsigned int tid)
76 {
77 union listen_entry *e;
78
79 if (tid < t->stid_base || tid >= t->stid_base + t->nstids)
80 return NULL;
81
82 e = stid2entry(t, tid);
83 if ((void *)e->next >= (void *)t->tid_tab &&
84 (void *)e->next < (void *)&t->atid_tab[t->natids])
85 return NULL;
86
87 return &e->t3c_tid;
88 }
89
90
91
92
93 static inline struct t3c_tid_entry *lookup_atid(const struct tid_info *t,
94 unsigned int tid)
95 {
96 union active_open_entry *e;
97
98 if (tid < t->atid_base || tid >= t->atid_base + t->natids)
99 return NULL;
100
101 e = atid2entry(t, tid);
102 if ((void *)e->next >= (void *)t->tid_tab &&
103 (void *)e->next < (void *)&t->atid_tab[t->natids])
104 return NULL;
105
106 return &e->t3c_tid;
107 }
108
109 int attach_t3cdev(struct t3cdev *dev);
110 void detach_t3cdev(struct t3cdev *dev);
111 #endif