restructuring: Introduce _transceive_ functions for Tx-then-Rx
diff --git a/src/diag_dpl.c b/src/diag_dpl.c
index 72008dd..31bcff6 100644
--- a/src/diag_dpl.c
+++ b/src/diag_dpl.c
@@ -21,6 +21,7 @@
#include <osmocom/core/msgb.h>
#include "diag_log.h"
+#include "diag_io.h"
#include "protocol/diagcmd.h"
#include "protocol/diag_log_1x.h"
#include "protocol/dpl.h"
@@ -33,52 +34,61 @@
int diag_dpl_reset_logging(struct diag_instance *di)
{
- struct msb *msg = msgb_alloc_diag();
+ struct msgb *msg = msgb_alloc_diag();
+ struct msgb *rx;
diag_push_subsys_hdr(msg, DIAG_SUBSYS_PS_DATA_LOGGING,
DIAG_DPL_RESET_LOGGING);
- diag_transmit_msgb(di, msg);
- diag_read(di);
+ rx = diag_transceive_msg(di, msg);
+ /* FIXME */
+ msgb_free(rx);
return 0;
}
int diag_dpl_get_sup_if(struct diag_instance *di)
{
struct msgb *msg = msgb_alloc_diag();
+ struct msgb *rx;
diag_push_subsys_hdr(msg, DIAG_SUBSYS_PS_DATA_LOGGING,
DIAG_DPL_GET_SUPPORTED_IFACES);
- diag_transmit_msgb(di, msg);
- diag_read(di);
+ rx = diag_transceive_msg(di, msg);
+ /* FIXME */
+ msgb_free(rx);
return 0;
}
int diag_dpl_get_if_desc(struct diag_instance *di, uint8_t iface_id)
{
struct msgb *msg = msgb_alloc_diag();
+ struct msgb *rx;
struct dpl_get_if_desc_req *gidr;
gidr = (struct dpl_get_if_desc_req *) msgb_put(msg, sizeof(*gidr));
gidr->iface_id = iface_id;
diag_push_subsys_hdr(msg, DIAG_SUBSYS_PS_DATA_LOGGING,
DIAG_DPL_GET_SUPPORTED_IFACES);
- diag_transmit_msgb(di, msg);
- diag_read(di);
+ rx = diag_transceive_msg(di, msg);
+ /* FIXME */
+ msgb_free(rx);
return 0;
}
-int diag_dpl_set_if_log(struct diag_instance *di, uint8_t iface_id)
+int diag_dpl_set_if_log(struct diag_instance *di, uint8_t iface_id,
+ uint32_t iid, uint32_t link_type)
{
struct msgb *msg = msgb_alloc_diag();
struct dpl_set_if_log_req *silr;
+ struct msgb *rx;
- silr = (struct dpl_get_if_desc_req *) msgb_put(msg, sizeof(*silr));
+ silr = (struct dpl_set_if_log_req *) msgb_put(msg, sizeof(*silr));
silr->iface_id = iface_id;
silr->num_log_flags = 1;
- msgb_put(msg, sizeof(silr->log_flags[0]);
- silr->log_flags[0].iid = FIXME;
- silr->log_flags[0].link_type = FIXME;
+ msgb_put(msg, sizeof(silr->log_flags[0]));
+ silr->log_flags[0].iid = iid;
+ silr->log_flags[0].link_type = link_type;
- diag_transmit_msgb(di, msg);
- diag_read(di);
+ rx = diag_transceive_msg(di, msg);
+ /* FIXME */
+ msgb_free(rx);
return 0;
}
@@ -91,8 +101,8 @@
struct dpl_hdr *dh = (struct dpl_hdr *) msgb_data(msg);
printf("(fl=0x%02x, ifn=0x%02x, prot=0x%02x, inst=%u, seq=%u, seg=%u): %s",
dh->iid.flags, dh->iid.if_name, dh->iid.protocol,
- dh->iid.link_instance, dh->seeq_nr, sh->seg_num,
- osmo_hexdump(dh->data, msgb_len(msg)-sizeof(*dh)));
+ dh->iid.link_instance, dh->seq_nr, dh->seg_num,
+ osmo_hexdump(dh->data, msgb_length(msg)-sizeof(*dh)));
}
static const struct diag_log_dispatch_tbl log_tbl[] = {