blob: 1dffa15e867446150a6031c1d24353d5c9be4b6e [file] [log] [blame]
Harald Weltebd448582016-12-23 23:41:14 +01001#pragma once
2
3#include <stdint.h>
4#include <osmocom/core/msgb.h>
Harald Weltece2f3962016-12-30 15:48:22 +01005#include <osmocom/core/gsmtap_util.h>
Harald Weltebd448582016-12-23 23:41:14 +01006
Harald Welteefb3eca2017-01-01 11:41:02 +01007#define DIAG_INST_F_HEXDUMP 0x00000001
8
Harald Weltebd448582016-12-23 23:41:14 +01009struct diag_instance {
10 int fd;
11 struct {
12 struct msgb *msg;
Harald Weltebd448582016-12-23 23:41:14 +010013 } rx;
14 struct {
15 } tx;
Harald Weltece2f3962016-12-30 15:48:22 +010016 struct gsmtap_inst *gsmtap;
Harald Welteefb3eca2017-01-01 11:41:02 +010017 uint32_t flags;
Harald Weltebd448582016-12-23 23:41:14 +010018};
19
Harald Weltedc2cafc2017-01-01 11:15:35 +010020struct msgb *msgb_alloc_diag(void);
Harald Weltebd448582016-12-23 23:41:14 +010021int diag_transmit_msgb(struct diag_instance *di, struct msgb *msg);
22int diag_transmit_buf(struct diag_instance *di, const uint8_t *data, size_t data_len);
Harald Weltedc2cafc2017-01-01 11:15:35 +010023struct msgb *diag_read_msg(struct diag_instance *di);
24int diag_process_msg(struct diag_instance *di, struct msgb *msg);
25struct msgb *diag_transceive_msg(struct diag_instance *di, struct msgb *tx);
26void diag_transceive_msg_ign(struct diag_instance *di, struct msgb *tx);
27struct msgb *diag_transceive_buf(struct diag_instance *di, const uint8_t *data, size_t data_len);
28void diag_transceive_buf_ign(struct diag_instance *di, const uint8_t *data, size_t data_len);