add initial prototype with a few commands
[project/uqmi.git] / qmi-struct.h
1 #ifndef __QMI_STRUCT_H
2 #define __QMI_STRUCT_H
3
4 struct qmux {
5 uint16_t len;
6 uint8_t flags;
7 uint8_t service;
8 uint8_t client;
9 } __packed;
10
11 struct tlv {
12 uint8_t type;
13 uint16_t len;
14 uint8_t data[];
15 } __packed;
16
17 struct qmi_ctl {
18 uint8_t transaction;
19 uint16_t message;
20 uint16_t tlv_len;
21 struct tlv tlv[];
22 } __packed;
23
24 struct qmi_svc {
25 uint16_t transaction;
26 uint16_t message;
27 uint16_t tlv_len;
28 struct tlv tlv[];
29 } __packed;
30
31 struct qmi_msg {
32 uint8_t marker;
33 struct qmux qmux;
34 uint8_t flags;
35 union {
36 struct qmi_ctl ctl;
37 struct qmi_svc svc;
38 };
39 } __packed;
40
41 #endif