1
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:162:static int ipc_sock_write(struct osmo_fd *bfd)
|
2
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:163-{
|
3
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:164- struct ipc_sock_state *state = (struct ipc_sock_state *)bfd->data;
|
4
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:165- int rc;
|
5
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:166-
|
6
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:167- while (!llist_empty(&state->upqueue)) {
|
7
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:168- struct msgb *msg, *msg2;
|
8
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:169- struct ipc_sk_if *ipc_prim;
|
9
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:170-
|
10
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:171- /* peek at the beginning of the queue */
|
11
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:172- msg = llist_entry(state->upqueue.next, struct msgb, list);
|
12
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:173- ipc_prim = (struct ipc_sk_if *)msg->data;
|
13
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:174-
|
14
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:175- osmo_fd_write_disable(bfd);
|
15
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:176-
|
16
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:177- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
17
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:178- if (!msgb_length(msg)) {
|
18
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:179- LOGP(DDEV, LOGL_ERROR,
|
19
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:180- "message type (%d) with ZERO "
|
20
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:181- "bytes!\n",
|
21
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:182- ipc_prim->msg_type);
|
22
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:183- goto dontsend;
|
23
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:184- }
|
24
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:185-
|
25
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:186- /* try to send it over the socket */
|
26
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:187- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
27
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:188- if (rc == 0)
|
28
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:189- goto close;
|
29
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:190- if (rc < 0) {
|
30
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:191- if (errno == EAGAIN) {
|
31
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:192- osmo_fd_write_enable(bfd);
|
32
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:193- break;
|
33
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:194- }
|
34
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:195- goto close;
|
35
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:196- }
|
36
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:197-
|
37
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:198- dontsend:
|
38
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:199- /* _after_ we send it, we can deueue */
|
39
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:200- msg2 = msgb_dequeue(&state->upqueue);
|
40
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:201- assert(msg == msg2);
|
41
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:202- msgb_free(msg);
|
42
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:203- }
|
43
|
osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:204- return 0;
|
44
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:150:static int ipc_chan_sock_write(struct osmo_fd *bfd)
|
45
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:151-{
|
46
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:152- struct ipc_sock_state *state = (struct ipc_sock_state *)bfd->data;
|
47
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:153- int rc;
|
48
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:154-
|
49
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:155- while (!llist_empty(&state->upqueue)) {
|
50
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:156- struct msgb *msg, *msg2;
|
51
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:157- struct ipc_sk_chan_if *ipc_prim;
|
52
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:158-
|
53
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:159- /* peek at the beginning of the queue */
|
54
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:160- msg = llist_entry(state->upqueue.next, struct msgb, list);
|
55
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:161- ipc_prim = (struct ipc_sk_chan_if *)msg->data;
|
56
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:162-
|
57
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:163- osmo_fd_write_disable(bfd);
|
58
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:164-
|
59
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:165- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
60
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:166- if (!msgb_length(msg)) {
|
61
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:167- LOGP(DDEV, LOGL_ERROR,
|
62
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:168- "message type (%d) with ZERO "
|
63
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:169- "bytes!\n",
|
64
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:170- ipc_prim->msg_type);
|
65
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:171- goto dontsend;
|
66
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:172- }
|
67
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:173-
|
68
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:174- /* try to send it over the socket */
|
69
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:175- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
70
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:176- if (rc == 0)
|
71
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:177- goto close;
|
72
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:178- if (rc < 0) {
|
73
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:179- if (errno == EAGAIN) {
|
74
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:180- osmo_fd_write_enable(bfd);
|
75
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:181- break;
|
76
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:182- }
|
77
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:183- goto close;
|
78
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:184- }
|
79
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:185-
|
80
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:186- dontsend:
|
81
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:187- /* _after_ we send it, we can dequeue */
|
82
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:188- msg2 = msgb_dequeue(&state->upqueue);
|
83
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:189- assert(msg == msg2);
|
84
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:190- msgb_free(msg);
|
85
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:191- }
|
86
|
osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:192- return 0;
|
87
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:148:static int mncc_sock_write(struct osmo_fd *bfd)
|
88
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:149-{
|
89
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:150- struct mncc_sock_state *state = bfd->data;
|
90
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:151- int rc;
|
91
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:152-
|
92
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:153- while (!llist_empty(&state->upqueue)) {
|
93
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:154- struct msgb *msg, *msg2;
|
94
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:155- struct gsm_mncc *mncc_prim;
|
95
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:156-
|
96
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:157- /* peek at the beginning of the queue */
|
97
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:158- msg = llist_entry(state->upqueue.next, struct msgb, list);
|
98
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:159- mncc_prim = (struct gsm_mncc *)msg->data;
|
99
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:160-
|
100
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:161- osmo_fd_write_disable(bfd);
|
101
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:162-
|
102
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:163- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
103
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:164- if (!msgb_length(msg)) {
|
104
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:165- LOGP(DMNCC, LOGL_ERROR, "message type (%d) with ZERO "
|
105
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:166- "bytes!\n", mncc_prim->msg_type);
|
106
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:167- goto dontsend;
|
107
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:168- }
|
108
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:169-
|
109
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:170- /* try to send it over the socket */
|
110
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:171- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
111
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:172- if (rc == 0)
|
112
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:173- goto close;
|
113
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:174- if (rc < 0) {
|
114
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:175- if (errno == EAGAIN) {
|
115
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:176- osmo_fd_write_enable(bfd);
|
116
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:177- break;
|
117
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:178- }
|
118
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:179- goto close;
|
119
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:180- }
|
120
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:181-
|
121
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:182-dontsend:
|
122
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:183- /* _after_ we send it, we can deueue */
|
123
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:184- msg2 = msgb_dequeue(&state->upqueue);
|
124
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:185- assert(msg == msg2);
|
125
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:186- msgb_free(msg);
|
126
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:187- }
|
127
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:188- return 0;
|
128
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:189-
|
129
|
osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:190-close:
|
130
|
osmo-msc/src/libmsc/mncc_sock.c:131:static int mncc_sock_write(struct osmo_fd *bfd)
|
131
|
osmo-msc/src/libmsc/mncc_sock.c:132-{
|
132
|
osmo-msc/src/libmsc/mncc_sock.c:133- struct mncc_sock_state *state = bfd->data;
|
133
|
osmo-msc/src/libmsc/mncc_sock.c:134- struct gsm_network *net = state->net;
|
134
|
osmo-msc/src/libmsc/mncc_sock.c:135- int rc;
|
135
|
osmo-msc/src/libmsc/mncc_sock.c:136-
|
136
|
osmo-msc/src/libmsc/mncc_sock.c:137- while (!llist_empty(&net->upqueue)) {
|
137
|
osmo-msc/src/libmsc/mncc_sock.c:138- struct msgb *msg, *msg2;
|
138
|
osmo-msc/src/libmsc/mncc_sock.c:139- struct gsm_mncc *mncc_prim;
|
139
|
osmo-msc/src/libmsc/mncc_sock.c:140-
|
140
|
osmo-msc/src/libmsc/mncc_sock.c:141- /* peek at the beginning of the queue */
|
141
|
osmo-msc/src/libmsc/mncc_sock.c:142- msg = llist_entry(net->upqueue.next, struct msgb, list);
|
142
|
osmo-msc/src/libmsc/mncc_sock.c:143- mncc_prim = (struct gsm_mncc *)msg->data;
|
143
|
osmo-msc/src/libmsc/mncc_sock.c:144-
|
144
|
osmo-msc/src/libmsc/mncc_sock.c:145- osmo_fd_write_disable(bfd);
|
145
|
osmo-msc/src/libmsc/mncc_sock.c:146-
|
146
|
osmo-msc/src/libmsc/mncc_sock.c:147- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
147
|
osmo-msc/src/libmsc/mncc_sock.c:148- if (!msgb_length(msg)) {
|
148
|
osmo-msc/src/libmsc/mncc_sock.c:149- LOGP(DMNCC, LOGL_ERROR, "message type (%d) with ZERO "
|
149
|
osmo-msc/src/libmsc/mncc_sock.c:150- "bytes!\n", mncc_prim->msg_type);
|
150
|
osmo-msc/src/libmsc/mncc_sock.c:151- goto dontsend;
|
151
|
osmo-msc/src/libmsc/mncc_sock.c:152- }
|
152
|
osmo-msc/src/libmsc/mncc_sock.c:153-
|
153
|
osmo-msc/src/libmsc/mncc_sock.c:154- /* try to send it over the socket */
|
154
|
osmo-msc/src/libmsc/mncc_sock.c:155- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
155
|
osmo-msc/src/libmsc/mncc_sock.c:156- if (rc == 0)
|
156
|
osmo-msc/src/libmsc/mncc_sock.c:157- goto close;
|
157
|
osmo-msc/src/libmsc/mncc_sock.c:158- if (rc < 0) {
|
158
|
osmo-msc/src/libmsc/mncc_sock.c:159- if (errno == EAGAIN) {
|
159
|
osmo-msc/src/libmsc/mncc_sock.c:160- osmo_fd_write_enable(bfd);
|
160
|
osmo-msc/src/libmsc/mncc_sock.c:161- break;
|
161
|
osmo-msc/src/libmsc/mncc_sock.c:162- }
|
162
|
osmo-msc/src/libmsc/mncc_sock.c:163- goto close;
|
163
|
osmo-msc/src/libmsc/mncc_sock.c:164- }
|
164
|
osmo-msc/src/libmsc/mncc_sock.c:165-
|
165
|
osmo-msc/src/libmsc/mncc_sock.c:166-dontsend:
|
166
|
osmo-msc/src/libmsc/mncc_sock.c:167- /* _after_ we send it, we can deueue */
|
167
|
osmo-msc/src/libmsc/mncc_sock.c:168- msg2 = msgb_dequeue(&net->upqueue);
|
168
|
osmo-msc/src/libmsc/mncc_sock.c:169- assert(msg == msg2);
|
169
|
osmo-msc/src/libmsc/mncc_sock.c:170- msgb_free(msg);
|
170
|
osmo-msc/src/libmsc/mncc_sock.c:171- }
|
171
|
osmo-msc/src/libmsc/mncc_sock.c:172- return 0;
|
172
|
osmo-msc/src/libmsc/mncc_sock.c:173-
|
173
|
osmo-pcu/src/osmobts_sock.c:154:static int pcu_sock_write(struct osmo_fd *bfd)
|
174
|
osmo-pcu/src/osmobts_sock.c:155-{
|
175
|
osmo-pcu/src/osmobts_sock.c:156- int rc;
|
176
|
osmo-pcu/src/osmobts_sock.c:157-
|
177
|
osmo-pcu/src/osmobts_sock.c:158- while (!llist_empty(&pcu_sock_state.upqueue)) {
|
178
|
osmo-pcu/src/osmobts_sock.c:159- struct msgb *msg, *msg2;
|
179
|
osmo-pcu/src/osmobts_sock.c:160- struct gsm_pcu_if *pcu_prim;
|
180
|
osmo-pcu/src/osmobts_sock.c:161-
|
181
|
osmo-pcu/src/osmobts_sock.c:162- /* peek at the beginning of the queue */
|
182
|
osmo-pcu/src/osmobts_sock.c:163- msg = llist_entry(pcu_sock_state.upqueue.next, struct msgb, list);
|
183
|
osmo-pcu/src/osmobts_sock.c:164- pcu_prim = (struct gsm_pcu_if *)msg->data;
|
184
|
osmo-pcu/src/osmobts_sock.c:165-
|
185
|
osmo-pcu/src/osmobts_sock.c:166- osmo_fd_write_disable(bfd);
|
186
|
osmo-pcu/src/osmobts_sock.c:167-
|
187
|
osmo-pcu/src/osmobts_sock.c:168- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
188
|
osmo-pcu/src/osmobts_sock.c:169- if (!msgb_length(msg)) {
|
189
|
osmo-pcu/src/osmobts_sock.c:170- LOGP(DL1IF, LOGL_ERROR, "message type (%d) with ZERO "
|
190
|
osmo-pcu/src/osmobts_sock.c:171- "bytes!\n", pcu_prim->msg_type);
|
191
|
osmo-pcu/src/osmobts_sock.c:172- goto dontsend;
|
192
|
osmo-pcu/src/osmobts_sock.c:173- }
|
193
|
osmo-pcu/src/osmobts_sock.c:174-
|
194
|
osmo-pcu/src/osmobts_sock.c:175- /* try to send it over the socket */
|
195
|
osmo-pcu/src/osmobts_sock.c:176- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
196
|
osmo-pcu/src/osmobts_sock.c:177- if (rc == 0)
|
197
|
osmo-pcu/src/osmobts_sock.c:178- goto close;
|
198
|
osmo-pcu/src/osmobts_sock.c:179- if (rc < 0) {
|
199
|
osmo-pcu/src/osmobts_sock.c:180- if (errno == EAGAIN) {
|
200
|
osmo-pcu/src/osmobts_sock.c:181- osmo_fd_write_enable(bfd);
|
201
|
osmo-pcu/src/osmobts_sock.c:182- break;
|
202
|
osmo-pcu/src/osmobts_sock.c:183- }
|
203
|
osmo-pcu/src/osmobts_sock.c:184- goto close;
|
204
|
osmo-pcu/src/osmobts_sock.c:185- }
|
205
|
osmo-pcu/src/osmobts_sock.c:186-
|
206
|
osmo-pcu/src/osmobts_sock.c:187-dontsend:
|
207
|
osmo-pcu/src/osmobts_sock.c:188- /* _after_ we send it, we can deueue */
|
208
|
osmo-pcu/src/osmobts_sock.c:189- msg2 = msgb_dequeue(&pcu_sock_state.upqueue);
|
209
|
osmo-pcu/src/osmobts_sock.c:190- assert(msg == msg2);
|
210
|
osmo-pcu/src/osmobts_sock.c:191- msgb_free(msg);
|
211
|
osmo-pcu/src/osmobts_sock.c:192- }
|
212
|
osmo-pcu/src/osmobts_sock.c:193- return 0;
|
213
|
osmo-pcu/src/osmobts_sock.c:194-
|
214
|
osmo-pcu/src/osmobts_sock.c:195-close:
|
215
|
osmo-pcu/src/osmobts_sock.c:196- pcu_sock_close(1);
|
216
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:619:static int pcu_sock_write(struct osmo_fd *bfd)
|
217
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:620-{
|
218
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:621- struct pcu_sock_state *state = bfd->data;
|
219
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:622- int rc;
|
220
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:623-
|
221
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:624- while (!llist_empty(&state->upqueue)) {
|
222
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:625- struct msgb *msg, *msg2;
|
223
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:626- struct gsm_pcu_if *pcu_prim;
|
224
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:627-
|
225
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:628- /* peek at the beginning of the queue */
|
226
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:629- msg = llist_entry(state->upqueue.next, struct msgb, list);
|
227
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:630- pcu_prim = (struct gsm_pcu_if *)msg->data;
|
228
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:631-
|
229
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:632- osmo_fd_write_disable(bfd);
|
230
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:633-
|
231
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:634- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
232
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:635- if (!msgb_length(msg)) {
|
233
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:636- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO "
|
234
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:637- "bytes!\n", pcu_prim->msg_type);
|
235
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:638- goto dontsend;
|
236
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:639- }
|
237
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:640-
|
238
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:641- /* try to send it over the socket */
|
239
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:642- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
240
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:643- if (rc == 0)
|
241
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:644- goto close;
|
242
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:645- if (rc < 0) {
|
243
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:646- if (errno == EAGAIN) {
|
244
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:647- osmo_fd_write_enable(bfd);
|
245
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:648- break;
|
246
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:649- }
|
247
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:650- goto close;
|
248
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:651- }
|
249
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:652-
|
250
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:653-dontsend:
|
251
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:654- /* _after_ we send it, we can deueue */
|
252
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:655- msg2 = msgb_dequeue(&state->upqueue);
|
253
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:656- assert(msg == msg2);
|
254
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:657- msgb_free(msg);
|
255
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:658- }
|
256
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:659- return 0;
|
257
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:660-
|
258
|
docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:661-close:
|
259
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1093:static int pcu_sock_write(struct osmo_fd *bfd)
|
260
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1094-{
|
261
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1095- struct pcu_sock_state *state = bfd->data;
|
262
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1096- int rc;
|
263
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1097-
|
264
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1098- while (!llist_empty(&state->upqueue)) {
|
265
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1099- struct msgb *msg, *msg2;
|
266
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1100- struct gsm_pcu_if *pcu_prim;
|
267
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1101-
|
268
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1102- /* peek at the beginning of the queue */
|
269
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1103- msg = llist_entry(state->upqueue.next, struct msgb, list);
|
270
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1104- pcu_prim = (struct gsm_pcu_if *)msg->data;
|
271
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1105-
|
272
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1106- osmo_fd_write_disable(bfd);
|
273
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1107-
|
274
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1108- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
275
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1109- if (!msgb_length(msg)) {
|
276
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1110- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO "
|
277
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1111- "bytes!\n", pcu_prim->msg_type);
|
278
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1112- goto dontsend;
|
279
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1113- }
|
280
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1114-
|
281
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1115- /* try to send it over the socket */
|
282
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1116- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
283
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1117- if (rc == 0)
|
284
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1118- goto close;
|
285
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1119- if (rc < 0) {
|
286
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1120- if (errno == EAGAIN) {
|
287
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1121- osmo_fd_write_enable(bfd);
|
288
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1122- break;
|
289
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1123- }
|
290
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1124- goto close;
|
291
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1125- }
|
292
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1126-
|
293
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1127-dontsend:
|
294
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1128- /* _after_ we send it, we can deueue */
|
295
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1129- msg2 = msgb_dequeue(&state->upqueue);
|
296
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1130- assert(msg == msg2);
|
297
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1131- msgb_free(msg);
|
298
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1132- }
|
299
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1133- return 0;
|
300
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1134-
|
301
|
docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1135-close:
|
302
|
osmo-bts/src/common/pcu_sock.c:1088:static int pcu_sock_write(struct osmo_fd *bfd)
|
303
|
osmo-bts/src/common/pcu_sock.c:1089-{
|
304
|
osmo-bts/src/common/pcu_sock.c:1090- struct pcu_sock_state *state = bfd->data;
|
305
|
osmo-bts/src/common/pcu_sock.c:1091- struct msgb *msg;
|
306
|
osmo-bts/src/common/pcu_sock.c:1092- int rc;
|
307
|
osmo-bts/src/common/pcu_sock.c:1093-
|
308
|
osmo-bts/src/common/pcu_sock.c:1094- while ((msg = msgb_dequeue(&state->upqueue))) {
|
309
|
osmo-bts/src/common/pcu_sock.c:1095- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
310
|
osmo-bts/src/common/pcu_sock.c:1096- OSMO_ASSERT(msgb_length(msg) > 0);
|
311
|
osmo-bts/src/common/pcu_sock.c:1097-
|
312
|
osmo-bts/src/common/pcu_sock.c:1098- /* try to send it over the socket */
|
313
|
osmo-bts/src/common/pcu_sock.c:1099- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
314
|
osmo-bts/src/common/pcu_sock.c:1100- if (OSMO_UNLIKELY(rc == 0))
|
315
|
osmo-bts/src/common/pcu_sock.c:1101- goto close;
|
316
|
osmo-bts/src/common/pcu_sock.c:1102- if (OSMO_UNLIKELY(rc < 0)) {
|
317
|
osmo-bts/src/common/pcu_sock.c:1103- if (errno == EAGAIN) {
|
318
|
osmo-bts/src/common/pcu_sock.c:1104- /* Re-insert at the start of the queue, skip disabling fd WRITE */
|
319
|
osmo-bts/src/common/pcu_sock.c:1105- llist_add(&msg->list, &state->upqueue);
|
320
|
osmo-bts/src/common/pcu_sock.c:1106- return 0;
|
321
|
osmo-bts/src/common/pcu_sock.c:1107- }
|
322
|
osmo-bts/src/common/pcu_sock.c:1108- goto close;
|
323
|
osmo-bts/src/common/pcu_sock.c:1109- }
|
324
|
osmo-bts/src/common/pcu_sock.c:1110- msgb_free(msg);
|
325
|
osmo-bts/src/common/pcu_sock.c:1111- }
|
326
|
osmo-bts/src/common/pcu_sock.c:1112- osmo_fd_write_disable(bfd);
|
327
|
osmo-bts/src/common/pcu_sock.c:1113- return 0;
|
328
|
osmo-bts/src/common/pcu_sock.c:1114-
|
329
|
osmo-bts/src/common/pcu_sock.c:1115-close:
|
330
|
osmo-bts/src/common/pcu_sock.c:1116- msgb_free(msg);
|
331
|
osmo-bts/src/common/pcu_sock.c:1117- pcu_sock_close(state);
|
332
|
osmo-bts/src/common/pcu_sock.c:1118- return -1;
|
333
|
osmo-bts/src/common/pcu_sock.c:1119-}
|
334
|
osmo-bts/src/common/pcu_sock.c:1120-
|
335
|
osmo-bts/src/common/pcu_sock.c:1121-static int pcu_sock_cb(struct osmo_fd *bfd, unsigned int flags)
|
336
|
osmo-bts/src/common/pcu_sock.c:1122-{
|
337
|
osmo-bts/src/common/pcu_sock.c:1123- int rc = 0;
|
338
|
osmo-bts/src/common/pcu_sock.c:1124-
|
339
|
osmo-bts/src/common/pcu_sock.c:1125- if (flags & OSMO_FD_READ)
|
340
|
osmo-bts/src/common/pcu_sock.c:1126- rc = pcu_sock_read(bfd);
|
341
|
osmo-bts/src/common/pcu_sock.c:1127- if (rc < 0)
|
342
|
osmo-bts/src/common/pcu_sock.c:1128- return rc;
|
343
|
osmo-bts/src/common/pcu_sock.c:1129-
|
344
|
osmo-bts/src/common/pcu_sock.c:1130- if (flags & OSMO_FD_WRITE)
|
345
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:842:static int pcu_sock_write(struct osmo_fd *bfd)
|
346
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:843-{
|
347
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:844- struct pcu_sock_state *state = bfd->data;
|
348
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:845- int rc;
|
349
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:846-
|
350
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:847- while (!llist_empty(&state->upqueue)) {
|
351
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:848- struct msgb *msg, *msg2;
|
352
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:849- struct gsm_pcu_if *pcu_prim;
|
353
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:850-
|
354
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:851- /* peek at the beginning of the queue */
|
355
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:852- msg = llist_entry(state->upqueue.next, struct msgb, list);
|
356
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:853- pcu_prim = (struct gsm_pcu_if *)msg->data;
|
357
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:854-
|
358
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:855- osmo_fd_write_disable(bfd);
|
359
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:856-
|
360
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:857- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
361
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:858- if (!msgb_length(msg)) {
|
362
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:859- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO "
|
363
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:860- "bytes!\n", pcu_prim->msg_type);
|
364
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:861- goto dontsend;
|
365
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:862- }
|
366
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:863-
|
367
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:864- /* try to send it over the socket */
|
368
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:865- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
369
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:866- if (rc == 0)
|
370
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:867- goto close;
|
371
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:868- if (rc < 0) {
|
372
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:869- if (errno == EAGAIN) {
|
373
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:870- osmo_fd_write_enable(bfd);
|
374
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:871- break;
|
375
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:872- }
|
376
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:873- goto close;
|
377
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:874- }
|
378
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:875-
|
379
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:876-dontsend:
|
380
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:877- /* _after_ we send it, we can deueue */
|
381
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:878- msg2 = msgb_dequeue(&state->upqueue);
|
382
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:879- assert(msg == msg2);
|
383
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:880- msgb_free(msg);
|
384
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:881- }
|
385
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:882- return 0;
|
386
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:883-
|
387
|
osmo-bsc/src/osmo-bsc/pcu_sock.c:884-close:
|
388
|
openbsc/openbsc/src/libbsc/pcu_sock.c:576:static int pcu_sock_write(struct osmo_fd *bfd)
|
389
|
openbsc/openbsc/src/libbsc/pcu_sock.c:577-{
|
390
|
openbsc/openbsc/src/libbsc/pcu_sock.c:578- struct pcu_sock_state *state = bfd->data;
|
391
|
openbsc/openbsc/src/libbsc/pcu_sock.c:579- int rc;
|
392
|
openbsc/openbsc/src/libbsc/pcu_sock.c:580-
|
393
|
openbsc/openbsc/src/libbsc/pcu_sock.c:581- while (!llist_empty(&state->upqueue)) {
|
394
|
openbsc/openbsc/src/libbsc/pcu_sock.c:582- struct msgb *msg, *msg2;
|
395
|
openbsc/openbsc/src/libbsc/pcu_sock.c:583- struct gsm_pcu_if *pcu_prim;
|
396
|
openbsc/openbsc/src/libbsc/pcu_sock.c:584-
|
397
|
openbsc/openbsc/src/libbsc/pcu_sock.c:585- /* peek at the beginning of the queue */
|
398
|
openbsc/openbsc/src/libbsc/pcu_sock.c:586- msg = llist_entry(state->upqueue.next, struct msgb, list);
|
399
|
openbsc/openbsc/src/libbsc/pcu_sock.c:587- pcu_prim = (struct gsm_pcu_if *)msg->data;
|
400
|
openbsc/openbsc/src/libbsc/pcu_sock.c:588-
|
401
|
openbsc/openbsc/src/libbsc/pcu_sock.c:589- bfd->when &= ~OSMO_FD_WRITE;
|
402
|
openbsc/openbsc/src/libbsc/pcu_sock.c:590-
|
403
|
openbsc/openbsc/src/libbsc/pcu_sock.c:591- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
404
|
openbsc/openbsc/src/libbsc/pcu_sock.c:592- if (!msgb_length(msg)) {
|
405
|
openbsc/openbsc/src/libbsc/pcu_sock.c:593- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO "
|
406
|
openbsc/openbsc/src/libbsc/pcu_sock.c:594- "bytes!\n", pcu_prim->msg_type);
|
407
|
openbsc/openbsc/src/libbsc/pcu_sock.c:595- goto dontsend;
|
408
|
openbsc/openbsc/src/libbsc/pcu_sock.c:596- }
|
409
|
openbsc/openbsc/src/libbsc/pcu_sock.c:597-
|
410
|
openbsc/openbsc/src/libbsc/pcu_sock.c:598- /* try to send it over the socket */
|
411
|
openbsc/openbsc/src/libbsc/pcu_sock.c:599- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
412
|
openbsc/openbsc/src/libbsc/pcu_sock.c:600- if (rc == 0)
|
413
|
openbsc/openbsc/src/libbsc/pcu_sock.c:601- goto close;
|
414
|
openbsc/openbsc/src/libbsc/pcu_sock.c:602- if (rc < 0) {
|
415
|
openbsc/openbsc/src/libbsc/pcu_sock.c:603- if (errno == EAGAIN) {
|
416
|
openbsc/openbsc/src/libbsc/pcu_sock.c:604- bfd->when |= OSMO_FD_WRITE;
|
417
|
openbsc/openbsc/src/libbsc/pcu_sock.c:605- break;
|
418
|
openbsc/openbsc/src/libbsc/pcu_sock.c:606- }
|
419
|
openbsc/openbsc/src/libbsc/pcu_sock.c:607- goto close;
|
420
|
openbsc/openbsc/src/libbsc/pcu_sock.c:608- }
|
421
|
openbsc/openbsc/src/libbsc/pcu_sock.c:609-
|
422
|
openbsc/openbsc/src/libbsc/pcu_sock.c:610-dontsend:
|
423
|
openbsc/openbsc/src/libbsc/pcu_sock.c:611- /* _after_ we send it, we can deueue */
|
424
|
openbsc/openbsc/src/libbsc/pcu_sock.c:612- msg2 = msgb_dequeue(&state->upqueue);
|
425
|
openbsc/openbsc/src/libbsc/pcu_sock.c:613- assert(msg == msg2);
|
426
|
openbsc/openbsc/src/libbsc/pcu_sock.c:614- msgb_free(msg);
|
427
|
openbsc/openbsc/src/libbsc/pcu_sock.c:615- }
|
428
|
openbsc/openbsc/src/libbsc/pcu_sock.c:616- return 0;
|
429
|
openbsc/openbsc/src/libbsc/pcu_sock.c:617-
|
430
|
openbsc/openbsc/src/libbsc/pcu_sock.c:618-close:
|
431
|
openbsc/openbsc/src/libmsc/mncc_sock.c:140:static int mncc_sock_write(struct osmo_fd *bfd)
|
432
|
openbsc/openbsc/src/libmsc/mncc_sock.c:141-{
|
433
|
openbsc/openbsc/src/libmsc/mncc_sock.c:142- struct mncc_sock_state *state = bfd->data;
|
434
|
openbsc/openbsc/src/libmsc/mncc_sock.c:143- struct gsm_network *net = state->net;
|
435
|
openbsc/openbsc/src/libmsc/mncc_sock.c:144- int rc;
|
436
|
openbsc/openbsc/src/libmsc/mncc_sock.c:145-
|
437
|
openbsc/openbsc/src/libmsc/mncc_sock.c:146- while (!llist_empty(&net->upqueue)) {
|
438
|
openbsc/openbsc/src/libmsc/mncc_sock.c:147- struct msgb *msg, *msg2;
|
439
|
openbsc/openbsc/src/libmsc/mncc_sock.c:148- struct gsm_mncc *mncc_prim;
|
440
|
openbsc/openbsc/src/libmsc/mncc_sock.c:149-
|
441
|
openbsc/openbsc/src/libmsc/mncc_sock.c:150- /* peek at the beginning of the queue */
|
442
|
openbsc/openbsc/src/libmsc/mncc_sock.c:151- msg = llist_entry(net->upqueue.next, struct msgb, list);
|
443
|
openbsc/openbsc/src/libmsc/mncc_sock.c:152- mncc_prim = (struct gsm_mncc *)msg->data;
|
444
|
openbsc/openbsc/src/libmsc/mncc_sock.c:153-
|
445
|
openbsc/openbsc/src/libmsc/mncc_sock.c:154- bfd->when &= ~OSMO_FD_WRITE;
|
446
|
openbsc/openbsc/src/libmsc/mncc_sock.c:155-
|
447
|
openbsc/openbsc/src/libmsc/mncc_sock.c:156- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */
|
448
|
openbsc/openbsc/src/libmsc/mncc_sock.c:157- if (!msgb_length(msg)) {
|
449
|
openbsc/openbsc/src/libmsc/mncc_sock.c:158- LOGP(DMNCC, LOGL_ERROR, "message type (%d) with ZERO "
|
450
|
openbsc/openbsc/src/libmsc/mncc_sock.c:159- "bytes!\n", mncc_prim->msg_type);
|
451
|
openbsc/openbsc/src/libmsc/mncc_sock.c:160- goto dontsend;
|
452
|
openbsc/openbsc/src/libmsc/mncc_sock.c:161- }
|
453
|
openbsc/openbsc/src/libmsc/mncc_sock.c:162-
|
454
|
openbsc/openbsc/src/libmsc/mncc_sock.c:163- /* try to send it over the socket */
|
455
|
openbsc/openbsc/src/libmsc/mncc_sock.c:164- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg));
|
456
|
openbsc/openbsc/src/libmsc/mncc_sock.c:165- if (rc == 0)
|
457
|
openbsc/openbsc/src/libmsc/mncc_sock.c:166- goto close;
|
458
|
openbsc/openbsc/src/libmsc/mncc_sock.c:167- if (rc < 0) {
|
459
|
openbsc/openbsc/src/libmsc/mncc_sock.c:168- if (errno == EAGAIN) {
|
460
|
openbsc/openbsc/src/libmsc/mncc_sock.c:169- bfd->when |= OSMO_FD_WRITE;
|
461
|
openbsc/openbsc/src/libmsc/mncc_sock.c:170- break;
|
462
|
openbsc/openbsc/src/libmsc/mncc_sock.c:171- }
|
463
|
openbsc/openbsc/src/libmsc/mncc_sock.c:172- goto close;
|
464
|
openbsc/openbsc/src/libmsc/mncc_sock.c:173- }
|
465
|
openbsc/openbsc/src/libmsc/mncc_sock.c:174-
|
466
|
openbsc/openbsc/src/libmsc/mncc_sock.c:175-dontsend:
|
467
|
openbsc/openbsc/src/libmsc/mncc_sock.c:176- /* _after_ we send it, we can deueue */
|
468
|
openbsc/openbsc/src/libmsc/mncc_sock.c:177- msg2 = msgb_dequeue(&net->upqueue);
|
469
|
openbsc/openbsc/src/libmsc/mncc_sock.c:178- assert(msg == msg2);
|
470
|
openbsc/openbsc/src/libmsc/mncc_sock.c:179- msgb_free(msg);
|
471
|
openbsc/openbsc/src/libmsc/mncc_sock.c:180- }
|
472
|
openbsc/openbsc/src/libmsc/mncc_sock.c:181- return 0;
|
473
|
openbsc/openbsc/src/libmsc/mncc_sock.c:182-
|