osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:162:static int ipc_sock_write(struct osmo_fd *bfd) osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:163-{ osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:164- struct ipc_sock_state *state = (struct ipc_sock_state *)bfd->data; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:165- int rc; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:166- osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:167- while (!llist_empty(&state->upqueue)) { osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:168- struct msgb *msg, *msg2; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:169- struct ipc_sk_if *ipc_prim; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:170- osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:171- /* peek at the beginning of the queue */ osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:172- msg = llist_entry(state->upqueue.next, struct msgb, list); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:173- ipc_prim = (struct ipc_sk_if *)msg->data; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:174- osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:175- osmo_fd_write_disable(bfd); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:176- osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:177- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:178- if (!msgb_length(msg)) { osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:179- LOGP(DDEV, LOGL_ERROR, osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:180- "message type (%d) with ZERO " osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:181- "bytes!\n", osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:182- ipc_prim->msg_type); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:183- goto dontsend; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:184- } osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:185- osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:186- /* try to send it over the socket */ osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:187- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:188- if (rc == 0) osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:189- goto close; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:190- if (rc < 0) { osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:191- if (errno == EAGAIN) { osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:192- osmo_fd_write_enable(bfd); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:193- break; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:194- } osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:195- goto close; osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:196- } osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:197- osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:198- dontsend: osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:199- /* _after_ we send it, we can deueue */ osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:200- msg2 = msgb_dequeue(&state->upqueue); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:201- assert(msg == msg2); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:202- msgb_free(msg); osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:203- } osmo-trx/Transceiver52M/device/ipc/ipc_sock.c:204- return 0; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:150:static int ipc_chan_sock_write(struct osmo_fd *bfd) osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:151-{ osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:152- struct ipc_sock_state *state = (struct ipc_sock_state *)bfd->data; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:153- int rc; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:154- osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:155- while (!llist_empty(&state->upqueue)) { osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:156- struct msgb *msg, *msg2; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:157- struct ipc_sk_chan_if *ipc_prim; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:158- osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:159- /* peek at the beginning of the queue */ osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:160- msg = llist_entry(state->upqueue.next, struct msgb, list); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:161- ipc_prim = (struct ipc_sk_chan_if *)msg->data; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:162- osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:163- osmo_fd_write_disable(bfd); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:164- osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:165- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:166- if (!msgb_length(msg)) { osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:167- LOGP(DDEV, LOGL_ERROR, osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:168- "message type (%d) with ZERO " osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:169- "bytes!\n", osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:170- ipc_prim->msg_type); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:171- goto dontsend; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:172- } osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:173- osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:174- /* try to send it over the socket */ osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:175- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:176- if (rc == 0) osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:177- goto close; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:178- if (rc < 0) { osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:179- if (errno == EAGAIN) { osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:180- osmo_fd_write_enable(bfd); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:181- break; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:182- } osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:183- goto close; osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:184- } osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:185- osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:186- dontsend: osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:187- /* _after_ we send it, we can dequeue */ osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:188- msg2 = msgb_dequeue(&state->upqueue); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:189- assert(msg == msg2); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:190- msgb_free(msg); osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:191- } osmo-trx/Transceiver52M/device/ipc/ipc_chan.c:192- return 0; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:148:static int mncc_sock_write(struct osmo_fd *bfd) osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:149-{ osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:150- struct mncc_sock_state *state = bfd->data; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:151- int rc; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:152- osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:153- while (!llist_empty(&state->upqueue)) { osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:154- struct msgb *msg, *msg2; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:155- struct gsm_mncc *mncc_prim; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:156- osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:157- /* peek at the beginning of the queue */ osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:158- msg = llist_entry(state->upqueue.next, struct msgb, list); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:159- mncc_prim = (struct gsm_mncc *)msg->data; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:160- osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:161- osmo_fd_write_disable(bfd); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:162- osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:163- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:164- if (!msgb_length(msg)) { osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:165- LOGP(DMNCC, LOGL_ERROR, "message type (%d) with ZERO " osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:166- "bytes!\n", mncc_prim->msg_type); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:167- goto dontsend; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:168- } osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:169- osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:170- /* try to send it over the socket */ osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:171- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:172- if (rc == 0) osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:173- goto close; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:174- if (rc < 0) { osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:175- if (errno == EAGAIN) { osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:176- osmo_fd_write_enable(bfd); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:177- break; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:178- } osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:179- goto close; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:180- } osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:181- osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:182-dontsend: osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:183- /* _after_ we send it, we can deueue */ osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:184- msg2 = msgb_dequeue(&state->upqueue); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:185- assert(msg == msg2); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:186- msgb_free(msg); osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:187- } osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:188- return 0; osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:189- osmocom-bb/src/host/layer23/src/mobile/mncc_sock.c:190-close: osmo-msc/src/libmsc/mncc_sock.c:131:static int mncc_sock_write(struct osmo_fd *bfd) osmo-msc/src/libmsc/mncc_sock.c:132-{ osmo-msc/src/libmsc/mncc_sock.c:133- struct mncc_sock_state *state = bfd->data; osmo-msc/src/libmsc/mncc_sock.c:134- struct gsm_network *net = state->net; osmo-msc/src/libmsc/mncc_sock.c:135- int rc; osmo-msc/src/libmsc/mncc_sock.c:136- osmo-msc/src/libmsc/mncc_sock.c:137- while (!llist_empty(&net->upqueue)) { osmo-msc/src/libmsc/mncc_sock.c:138- struct msgb *msg, *msg2; osmo-msc/src/libmsc/mncc_sock.c:139- struct gsm_mncc *mncc_prim; osmo-msc/src/libmsc/mncc_sock.c:140- osmo-msc/src/libmsc/mncc_sock.c:141- /* peek at the beginning of the queue */ osmo-msc/src/libmsc/mncc_sock.c:142- msg = llist_entry(net->upqueue.next, struct msgb, list); osmo-msc/src/libmsc/mncc_sock.c:143- mncc_prim = (struct gsm_mncc *)msg->data; osmo-msc/src/libmsc/mncc_sock.c:144- osmo-msc/src/libmsc/mncc_sock.c:145- osmo_fd_write_disable(bfd); osmo-msc/src/libmsc/mncc_sock.c:146- osmo-msc/src/libmsc/mncc_sock.c:147- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ osmo-msc/src/libmsc/mncc_sock.c:148- if (!msgb_length(msg)) { osmo-msc/src/libmsc/mncc_sock.c:149- LOGP(DMNCC, LOGL_ERROR, "message type (%d) with ZERO " osmo-msc/src/libmsc/mncc_sock.c:150- "bytes!\n", mncc_prim->msg_type); osmo-msc/src/libmsc/mncc_sock.c:151- goto dontsend; osmo-msc/src/libmsc/mncc_sock.c:152- } osmo-msc/src/libmsc/mncc_sock.c:153- osmo-msc/src/libmsc/mncc_sock.c:154- /* try to send it over the socket */ osmo-msc/src/libmsc/mncc_sock.c:155- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); osmo-msc/src/libmsc/mncc_sock.c:156- if (rc == 0) osmo-msc/src/libmsc/mncc_sock.c:157- goto close; osmo-msc/src/libmsc/mncc_sock.c:158- if (rc < 0) { osmo-msc/src/libmsc/mncc_sock.c:159- if (errno == EAGAIN) { osmo-msc/src/libmsc/mncc_sock.c:160- osmo_fd_write_enable(bfd); osmo-msc/src/libmsc/mncc_sock.c:161- break; osmo-msc/src/libmsc/mncc_sock.c:162- } osmo-msc/src/libmsc/mncc_sock.c:163- goto close; osmo-msc/src/libmsc/mncc_sock.c:164- } osmo-msc/src/libmsc/mncc_sock.c:165- osmo-msc/src/libmsc/mncc_sock.c:166-dontsend: osmo-msc/src/libmsc/mncc_sock.c:167- /* _after_ we send it, we can deueue */ osmo-msc/src/libmsc/mncc_sock.c:168- msg2 = msgb_dequeue(&net->upqueue); osmo-msc/src/libmsc/mncc_sock.c:169- assert(msg == msg2); osmo-msc/src/libmsc/mncc_sock.c:170- msgb_free(msg); osmo-msc/src/libmsc/mncc_sock.c:171- } osmo-msc/src/libmsc/mncc_sock.c:172- return 0; osmo-msc/src/libmsc/mncc_sock.c:173- osmo-pcu/src/osmobts_sock.c:154:static int pcu_sock_write(struct osmo_fd *bfd) osmo-pcu/src/osmobts_sock.c:155-{ osmo-pcu/src/osmobts_sock.c:156- int rc; osmo-pcu/src/osmobts_sock.c:157- osmo-pcu/src/osmobts_sock.c:158- while (!llist_empty(&pcu_sock_state.upqueue)) { osmo-pcu/src/osmobts_sock.c:159- struct msgb *msg, *msg2; osmo-pcu/src/osmobts_sock.c:160- struct gsm_pcu_if *pcu_prim; osmo-pcu/src/osmobts_sock.c:161- osmo-pcu/src/osmobts_sock.c:162- /* peek at the beginning of the queue */ osmo-pcu/src/osmobts_sock.c:163- msg = llist_entry(pcu_sock_state.upqueue.next, struct msgb, list); osmo-pcu/src/osmobts_sock.c:164- pcu_prim = (struct gsm_pcu_if *)msg->data; osmo-pcu/src/osmobts_sock.c:165- osmo-pcu/src/osmobts_sock.c:166- osmo_fd_write_disable(bfd); osmo-pcu/src/osmobts_sock.c:167- osmo-pcu/src/osmobts_sock.c:168- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ osmo-pcu/src/osmobts_sock.c:169- if (!msgb_length(msg)) { osmo-pcu/src/osmobts_sock.c:170- LOGP(DL1IF, LOGL_ERROR, "message type (%d) with ZERO " osmo-pcu/src/osmobts_sock.c:171- "bytes!\n", pcu_prim->msg_type); osmo-pcu/src/osmobts_sock.c:172- goto dontsend; osmo-pcu/src/osmobts_sock.c:173- } osmo-pcu/src/osmobts_sock.c:174- osmo-pcu/src/osmobts_sock.c:175- /* try to send it over the socket */ osmo-pcu/src/osmobts_sock.c:176- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); osmo-pcu/src/osmobts_sock.c:177- if (rc == 0) osmo-pcu/src/osmobts_sock.c:178- goto close; osmo-pcu/src/osmobts_sock.c:179- if (rc < 0) { osmo-pcu/src/osmobts_sock.c:180- if (errno == EAGAIN) { osmo-pcu/src/osmobts_sock.c:181- osmo_fd_write_enable(bfd); osmo-pcu/src/osmobts_sock.c:182- break; osmo-pcu/src/osmobts_sock.c:183- } osmo-pcu/src/osmobts_sock.c:184- goto close; osmo-pcu/src/osmobts_sock.c:185- } osmo-pcu/src/osmobts_sock.c:186- osmo-pcu/src/osmobts_sock.c:187-dontsend: osmo-pcu/src/osmobts_sock.c:188- /* _after_ we send it, we can deueue */ osmo-pcu/src/osmobts_sock.c:189- msg2 = msgb_dequeue(&pcu_sock_state.upqueue); osmo-pcu/src/osmobts_sock.c:190- assert(msg == msg2); osmo-pcu/src/osmobts_sock.c:191- msgb_free(msg); osmo-pcu/src/osmobts_sock.c:192- } osmo-pcu/src/osmobts_sock.c:193- return 0; osmo-pcu/src/osmobts_sock.c:194- osmo-pcu/src/osmobts_sock.c:195-close: osmo-pcu/src/osmobts_sock.c:196- pcu_sock_close(1); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:619:static int pcu_sock_write(struct osmo_fd *bfd) docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:620-{ docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:621- struct pcu_sock_state *state = bfd->data; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:622- int rc; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:623- docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:624- while (!llist_empty(&state->upqueue)) { docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:625- struct msgb *msg, *msg2; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:626- struct gsm_pcu_if *pcu_prim; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:627- docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:628- /* peek at the beginning of the queue */ docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:629- msg = llist_entry(state->upqueue.next, struct msgb, list); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:630- pcu_prim = (struct gsm_pcu_if *)msg->data; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:631- docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:632- osmo_fd_write_disable(bfd); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:633- docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:634- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:635- if (!msgb_length(msg)) { docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:636- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO " docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:637- "bytes!\n", pcu_prim->msg_type); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:638- goto dontsend; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:639- } docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:640- docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:641- /* try to send it over the socket */ docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:642- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:643- if (rc == 0) docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:644- goto close; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:645- if (rc < 0) { docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:646- if (errno == EAGAIN) { docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:647- osmo_fd_write_enable(bfd); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:648- break; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:649- } docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:650- goto close; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:651- } docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:652- docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:653-dontsend: docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:654- /* _after_ we send it, we can deueue */ docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:655- msg2 = msgb_dequeue(&state->upqueue); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:656- assert(msg == msg2); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:657- msgb_free(msg); docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:658- } docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:659- return 0; docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:660- docker-playground/osmo-bsc-master/osmo-bsc/src/osmo-bsc/pcu_sock.c:661-close: docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1093:static int pcu_sock_write(struct osmo_fd *bfd) docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1094-{ docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1095- struct pcu_sock_state *state = bfd->data; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1096- int rc; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1097- docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1098- while (!llist_empty(&state->upqueue)) { docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1099- struct msgb *msg, *msg2; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1100- struct gsm_pcu_if *pcu_prim; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1101- docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1102- /* peek at the beginning of the queue */ docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1103- msg = llist_entry(state->upqueue.next, struct msgb, list); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1104- pcu_prim = (struct gsm_pcu_if *)msg->data; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1105- docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1106- osmo_fd_write_disable(bfd); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1107- docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1108- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1109- if (!msgb_length(msg)) { docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1110- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO " docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1111- "bytes!\n", pcu_prim->msg_type); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1112- goto dontsend; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1113- } docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1114- docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1115- /* try to send it over the socket */ docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1116- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1117- if (rc == 0) docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1118- goto close; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1119- if (rc < 0) { docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1120- if (errno == EAGAIN) { docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1121- osmo_fd_write_enable(bfd); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1122- break; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1123- } docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1124- goto close; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1125- } docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1126- docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1127-dontsend: docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1128- /* _after_ we send it, we can deueue */ docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1129- msg2 = msgb_dequeue(&state->upqueue); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1130- assert(msg == msg2); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1131- msgb_free(msg); docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1132- } docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1133- return 0; docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1134- docker-playground/osmo-bts-master/osmo-bts/src/common/pcu_sock.c:1135-close: osmo-bts/src/common/pcu_sock.c:1088:static int pcu_sock_write(struct osmo_fd *bfd) osmo-bts/src/common/pcu_sock.c:1089-{ osmo-bts/src/common/pcu_sock.c:1090- struct pcu_sock_state *state = bfd->data; osmo-bts/src/common/pcu_sock.c:1091- struct msgb *msg; osmo-bts/src/common/pcu_sock.c:1092- int rc; osmo-bts/src/common/pcu_sock.c:1093- osmo-bts/src/common/pcu_sock.c:1094- while ((msg = msgb_dequeue(&state->upqueue))) { osmo-bts/src/common/pcu_sock.c:1095- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ osmo-bts/src/common/pcu_sock.c:1096- OSMO_ASSERT(msgb_length(msg) > 0); osmo-bts/src/common/pcu_sock.c:1097- osmo-bts/src/common/pcu_sock.c:1098- /* try to send it over the socket */ osmo-bts/src/common/pcu_sock.c:1099- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); osmo-bts/src/common/pcu_sock.c:1100- if (OSMO_UNLIKELY(rc == 0)) osmo-bts/src/common/pcu_sock.c:1101- goto close; osmo-bts/src/common/pcu_sock.c:1102- if (OSMO_UNLIKELY(rc < 0)) { osmo-bts/src/common/pcu_sock.c:1103- if (errno == EAGAIN) { osmo-bts/src/common/pcu_sock.c:1104- /* Re-insert at the start of the queue, skip disabling fd WRITE */ osmo-bts/src/common/pcu_sock.c:1105- llist_add(&msg->list, &state->upqueue); osmo-bts/src/common/pcu_sock.c:1106- return 0; osmo-bts/src/common/pcu_sock.c:1107- } osmo-bts/src/common/pcu_sock.c:1108- goto close; osmo-bts/src/common/pcu_sock.c:1109- } osmo-bts/src/common/pcu_sock.c:1110- msgb_free(msg); osmo-bts/src/common/pcu_sock.c:1111- } osmo-bts/src/common/pcu_sock.c:1112- osmo_fd_write_disable(bfd); osmo-bts/src/common/pcu_sock.c:1113- return 0; osmo-bts/src/common/pcu_sock.c:1114- osmo-bts/src/common/pcu_sock.c:1115-close: osmo-bts/src/common/pcu_sock.c:1116- msgb_free(msg); osmo-bts/src/common/pcu_sock.c:1117- pcu_sock_close(state); osmo-bts/src/common/pcu_sock.c:1118- return -1; osmo-bts/src/common/pcu_sock.c:1119-} osmo-bts/src/common/pcu_sock.c:1120- osmo-bts/src/common/pcu_sock.c:1121-static int pcu_sock_cb(struct osmo_fd *bfd, unsigned int flags) osmo-bts/src/common/pcu_sock.c:1122-{ osmo-bts/src/common/pcu_sock.c:1123- int rc = 0; osmo-bts/src/common/pcu_sock.c:1124- osmo-bts/src/common/pcu_sock.c:1125- if (flags & OSMO_FD_READ) osmo-bts/src/common/pcu_sock.c:1126- rc = pcu_sock_read(bfd); osmo-bts/src/common/pcu_sock.c:1127- if (rc < 0) osmo-bts/src/common/pcu_sock.c:1128- return rc; osmo-bts/src/common/pcu_sock.c:1129- osmo-bts/src/common/pcu_sock.c:1130- if (flags & OSMO_FD_WRITE) osmo-bsc/src/osmo-bsc/pcu_sock.c:842:static int pcu_sock_write(struct osmo_fd *bfd) osmo-bsc/src/osmo-bsc/pcu_sock.c:843-{ osmo-bsc/src/osmo-bsc/pcu_sock.c:844- struct pcu_sock_state *state = bfd->data; osmo-bsc/src/osmo-bsc/pcu_sock.c:845- int rc; osmo-bsc/src/osmo-bsc/pcu_sock.c:846- osmo-bsc/src/osmo-bsc/pcu_sock.c:847- while (!llist_empty(&state->upqueue)) { osmo-bsc/src/osmo-bsc/pcu_sock.c:848- struct msgb *msg, *msg2; osmo-bsc/src/osmo-bsc/pcu_sock.c:849- struct gsm_pcu_if *pcu_prim; osmo-bsc/src/osmo-bsc/pcu_sock.c:850- osmo-bsc/src/osmo-bsc/pcu_sock.c:851- /* peek at the beginning of the queue */ osmo-bsc/src/osmo-bsc/pcu_sock.c:852- msg = llist_entry(state->upqueue.next, struct msgb, list); osmo-bsc/src/osmo-bsc/pcu_sock.c:853- pcu_prim = (struct gsm_pcu_if *)msg->data; osmo-bsc/src/osmo-bsc/pcu_sock.c:854- osmo-bsc/src/osmo-bsc/pcu_sock.c:855- osmo_fd_write_disable(bfd); osmo-bsc/src/osmo-bsc/pcu_sock.c:856- osmo-bsc/src/osmo-bsc/pcu_sock.c:857- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ osmo-bsc/src/osmo-bsc/pcu_sock.c:858- if (!msgb_length(msg)) { osmo-bsc/src/osmo-bsc/pcu_sock.c:859- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO " osmo-bsc/src/osmo-bsc/pcu_sock.c:860- "bytes!\n", pcu_prim->msg_type); osmo-bsc/src/osmo-bsc/pcu_sock.c:861- goto dontsend; osmo-bsc/src/osmo-bsc/pcu_sock.c:862- } osmo-bsc/src/osmo-bsc/pcu_sock.c:863- osmo-bsc/src/osmo-bsc/pcu_sock.c:864- /* try to send it over the socket */ osmo-bsc/src/osmo-bsc/pcu_sock.c:865- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); osmo-bsc/src/osmo-bsc/pcu_sock.c:866- if (rc == 0) osmo-bsc/src/osmo-bsc/pcu_sock.c:867- goto close; osmo-bsc/src/osmo-bsc/pcu_sock.c:868- if (rc < 0) { osmo-bsc/src/osmo-bsc/pcu_sock.c:869- if (errno == EAGAIN) { osmo-bsc/src/osmo-bsc/pcu_sock.c:870- osmo_fd_write_enable(bfd); osmo-bsc/src/osmo-bsc/pcu_sock.c:871- break; osmo-bsc/src/osmo-bsc/pcu_sock.c:872- } osmo-bsc/src/osmo-bsc/pcu_sock.c:873- goto close; osmo-bsc/src/osmo-bsc/pcu_sock.c:874- } osmo-bsc/src/osmo-bsc/pcu_sock.c:875- osmo-bsc/src/osmo-bsc/pcu_sock.c:876-dontsend: osmo-bsc/src/osmo-bsc/pcu_sock.c:877- /* _after_ we send it, we can deueue */ osmo-bsc/src/osmo-bsc/pcu_sock.c:878- msg2 = msgb_dequeue(&state->upqueue); osmo-bsc/src/osmo-bsc/pcu_sock.c:879- assert(msg == msg2); osmo-bsc/src/osmo-bsc/pcu_sock.c:880- msgb_free(msg); osmo-bsc/src/osmo-bsc/pcu_sock.c:881- } osmo-bsc/src/osmo-bsc/pcu_sock.c:882- return 0; osmo-bsc/src/osmo-bsc/pcu_sock.c:883- osmo-bsc/src/osmo-bsc/pcu_sock.c:884-close: openbsc/openbsc/src/libbsc/pcu_sock.c:576:static int pcu_sock_write(struct osmo_fd *bfd) openbsc/openbsc/src/libbsc/pcu_sock.c:577-{ openbsc/openbsc/src/libbsc/pcu_sock.c:578- struct pcu_sock_state *state = bfd->data; openbsc/openbsc/src/libbsc/pcu_sock.c:579- int rc; openbsc/openbsc/src/libbsc/pcu_sock.c:580- openbsc/openbsc/src/libbsc/pcu_sock.c:581- while (!llist_empty(&state->upqueue)) { openbsc/openbsc/src/libbsc/pcu_sock.c:582- struct msgb *msg, *msg2; openbsc/openbsc/src/libbsc/pcu_sock.c:583- struct gsm_pcu_if *pcu_prim; openbsc/openbsc/src/libbsc/pcu_sock.c:584- openbsc/openbsc/src/libbsc/pcu_sock.c:585- /* peek at the beginning of the queue */ openbsc/openbsc/src/libbsc/pcu_sock.c:586- msg = llist_entry(state->upqueue.next, struct msgb, list); openbsc/openbsc/src/libbsc/pcu_sock.c:587- pcu_prim = (struct gsm_pcu_if *)msg->data; openbsc/openbsc/src/libbsc/pcu_sock.c:588- openbsc/openbsc/src/libbsc/pcu_sock.c:589- bfd->when &= ~OSMO_FD_WRITE; openbsc/openbsc/src/libbsc/pcu_sock.c:590- openbsc/openbsc/src/libbsc/pcu_sock.c:591- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ openbsc/openbsc/src/libbsc/pcu_sock.c:592- if (!msgb_length(msg)) { openbsc/openbsc/src/libbsc/pcu_sock.c:593- LOGP(DPCU, LOGL_ERROR, "message type (%d) with ZERO " openbsc/openbsc/src/libbsc/pcu_sock.c:594- "bytes!\n", pcu_prim->msg_type); openbsc/openbsc/src/libbsc/pcu_sock.c:595- goto dontsend; openbsc/openbsc/src/libbsc/pcu_sock.c:596- } openbsc/openbsc/src/libbsc/pcu_sock.c:597- openbsc/openbsc/src/libbsc/pcu_sock.c:598- /* try to send it over the socket */ openbsc/openbsc/src/libbsc/pcu_sock.c:599- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); openbsc/openbsc/src/libbsc/pcu_sock.c:600- if (rc == 0) openbsc/openbsc/src/libbsc/pcu_sock.c:601- goto close; openbsc/openbsc/src/libbsc/pcu_sock.c:602- if (rc < 0) { openbsc/openbsc/src/libbsc/pcu_sock.c:603- if (errno == EAGAIN) { openbsc/openbsc/src/libbsc/pcu_sock.c:604- bfd->when |= OSMO_FD_WRITE; openbsc/openbsc/src/libbsc/pcu_sock.c:605- break; openbsc/openbsc/src/libbsc/pcu_sock.c:606- } openbsc/openbsc/src/libbsc/pcu_sock.c:607- goto close; openbsc/openbsc/src/libbsc/pcu_sock.c:608- } openbsc/openbsc/src/libbsc/pcu_sock.c:609- openbsc/openbsc/src/libbsc/pcu_sock.c:610-dontsend: openbsc/openbsc/src/libbsc/pcu_sock.c:611- /* _after_ we send it, we can deueue */ openbsc/openbsc/src/libbsc/pcu_sock.c:612- msg2 = msgb_dequeue(&state->upqueue); openbsc/openbsc/src/libbsc/pcu_sock.c:613- assert(msg == msg2); openbsc/openbsc/src/libbsc/pcu_sock.c:614- msgb_free(msg); openbsc/openbsc/src/libbsc/pcu_sock.c:615- } openbsc/openbsc/src/libbsc/pcu_sock.c:616- return 0; openbsc/openbsc/src/libbsc/pcu_sock.c:617- openbsc/openbsc/src/libbsc/pcu_sock.c:618-close: openbsc/openbsc/src/libmsc/mncc_sock.c:140:static int mncc_sock_write(struct osmo_fd *bfd) openbsc/openbsc/src/libmsc/mncc_sock.c:141-{ openbsc/openbsc/src/libmsc/mncc_sock.c:142- struct mncc_sock_state *state = bfd->data; openbsc/openbsc/src/libmsc/mncc_sock.c:143- struct gsm_network *net = state->net; openbsc/openbsc/src/libmsc/mncc_sock.c:144- int rc; openbsc/openbsc/src/libmsc/mncc_sock.c:145- openbsc/openbsc/src/libmsc/mncc_sock.c:146- while (!llist_empty(&net->upqueue)) { openbsc/openbsc/src/libmsc/mncc_sock.c:147- struct msgb *msg, *msg2; openbsc/openbsc/src/libmsc/mncc_sock.c:148- struct gsm_mncc *mncc_prim; openbsc/openbsc/src/libmsc/mncc_sock.c:149- openbsc/openbsc/src/libmsc/mncc_sock.c:150- /* peek at the beginning of the queue */ openbsc/openbsc/src/libmsc/mncc_sock.c:151- msg = llist_entry(net->upqueue.next, struct msgb, list); openbsc/openbsc/src/libmsc/mncc_sock.c:152- mncc_prim = (struct gsm_mncc *)msg->data; openbsc/openbsc/src/libmsc/mncc_sock.c:153- openbsc/openbsc/src/libmsc/mncc_sock.c:154- bfd->when &= ~OSMO_FD_WRITE; openbsc/openbsc/src/libmsc/mncc_sock.c:155- openbsc/openbsc/src/libmsc/mncc_sock.c:156- /* bug hunter 8-): maybe someone forgot msgb_put(...) ? */ openbsc/openbsc/src/libmsc/mncc_sock.c:157- if (!msgb_length(msg)) { openbsc/openbsc/src/libmsc/mncc_sock.c:158- LOGP(DMNCC, LOGL_ERROR, "message type (%d) with ZERO " openbsc/openbsc/src/libmsc/mncc_sock.c:159- "bytes!\n", mncc_prim->msg_type); openbsc/openbsc/src/libmsc/mncc_sock.c:160- goto dontsend; openbsc/openbsc/src/libmsc/mncc_sock.c:161- } openbsc/openbsc/src/libmsc/mncc_sock.c:162- openbsc/openbsc/src/libmsc/mncc_sock.c:163- /* try to send it over the socket */ openbsc/openbsc/src/libmsc/mncc_sock.c:164- rc = write(bfd->fd, msgb_data(msg), msgb_length(msg)); openbsc/openbsc/src/libmsc/mncc_sock.c:165- if (rc == 0) openbsc/openbsc/src/libmsc/mncc_sock.c:166- goto close; openbsc/openbsc/src/libmsc/mncc_sock.c:167- if (rc < 0) { openbsc/openbsc/src/libmsc/mncc_sock.c:168- if (errno == EAGAIN) { openbsc/openbsc/src/libmsc/mncc_sock.c:169- bfd->when |= OSMO_FD_WRITE; openbsc/openbsc/src/libmsc/mncc_sock.c:170- break; openbsc/openbsc/src/libmsc/mncc_sock.c:171- } openbsc/openbsc/src/libmsc/mncc_sock.c:172- goto close; openbsc/openbsc/src/libmsc/mncc_sock.c:173- } openbsc/openbsc/src/libmsc/mncc_sock.c:174- openbsc/openbsc/src/libmsc/mncc_sock.c:175-dontsend: openbsc/openbsc/src/libmsc/mncc_sock.c:176- /* _after_ we send it, we can deueue */ openbsc/openbsc/src/libmsc/mncc_sock.c:177- msg2 = msgb_dequeue(&net->upqueue); openbsc/openbsc/src/libmsc/mncc_sock.c:178- assert(msg == msg2); openbsc/openbsc/src/libmsc/mncc_sock.c:179- msgb_free(msg); openbsc/openbsc/src/libmsc/mncc_sock.c:180- } openbsc/openbsc/src/libmsc/mncc_sock.c:181- return 0; openbsc/openbsc/src/libmsc/mncc_sock.c:182-