1 /*
2 * Copyright 2018 Oticon A/S
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6 #include "bs_pc_2G4_types.h"
7 #include "bs_pc_2G4.h"
8
9 /**
10 * Family of functions with callbacks:
11 * (just a call thru to the stateless version library)
12 */
13 //State for the family of functions with callbacks
14 static p2G4_dev_state_s_t C2G4_dev_st = {0};
15
p2G4_dev_initcom_c(uint d,const char * s,const char * p,dev_abort_reeval_f abort_f)16 int p2G4_dev_initcom_c(uint d, const char* s, const char* p, dev_abort_reeval_f abort_f) {
17 return p2G4_dev_initcom_s_c(&C2G4_dev_st, d, s, p, abort_f);
18 }
19
p2G4_dev_terminate_c()20 void p2G4_dev_terminate_c(){
21 p2G4_dev_terminate_s_c(&C2G4_dev_st);
22 }
23
p2G4_dev_disconnect_c()24 void p2G4_dev_disconnect_c(){
25 p2G4_dev_disconnect_s_c(&C2G4_dev_st);
26 }
27
p2G4_dev_req_tx_c_b(p2G4_tx_t * tx_s,uint8_t * packet,p2G4_tx_done_t * tx_done_s)28 int p2G4_dev_req_tx_c_b(p2G4_tx_t *tx_s, uint8_t *packet, p2G4_tx_done_t *tx_done_s) {
29 return p2G4_dev_req_tx_s_c_b(&C2G4_dev_st, tx_s, packet, tx_done_s);
30 }
31
p2G4_dev_req_txv2_c_b(p2G4_txv2_t * tx_s,uint8_t * packet,p2G4_tx_done_t * tx_done_s)32 int p2G4_dev_req_txv2_c_b(p2G4_txv2_t *tx_s, uint8_t *packet, p2G4_tx_done_t *tx_done_s) {
33 return p2G4_dev_req_txv2_s_c_b(&C2G4_dev_st, tx_s, packet, tx_done_s);
34 }
35
p2G4_dev_req_rx_c_b(p2G4_rx_t * rx_s,p2G4_rx_done_t * rx_done_s,uint8_t ** buf,size_t size,device_eval_rx_f eval_f)36 int p2G4_dev_req_rx_c_b(p2G4_rx_t *rx_s, p2G4_rx_done_t *rx_done_s, uint8_t **buf, size_t size,
37 device_eval_rx_f eval_f){
38 return p2G4_dev_req_rx_s_c_b(&C2G4_dev_st, rx_s, rx_done_s, buf, size, eval_f);
39 }
40
p2G4_dev_req_rxv2_c_b(p2G4_rxv2_t * rx_s,p2G4_address_t * phy_addr,p2G4_rxv2_done_t * rx_done_s,uint8_t ** buf,size_t size,device_eval_rxv2_f eval_f)41 int p2G4_dev_req_rxv2_c_b(p2G4_rxv2_t *rx_s, p2G4_address_t *phy_addr, p2G4_rxv2_done_t *rx_done_s, uint8_t **buf, size_t size,
42 device_eval_rxv2_f eval_f){
43 return p2G4_dev_req_rxv2_s_c_b(&C2G4_dev_st, rx_s, phy_addr, rx_done_s, buf, size, eval_f);
44 }
45
p2G4_dev_req_RSSI_c_b(p2G4_rssi_t * RSSI_s,p2G4_rssi_done_t * RSSI_done_s)46 int p2G4_dev_req_RSSI_c_b(p2G4_rssi_t *RSSI_s, p2G4_rssi_done_t *RSSI_done_s) {
47 return p2G4_dev_req_RSSI_s_c_b(&C2G4_dev_st, RSSI_s, RSSI_done_s);
48 }
49
p2G4_dev_req_cca_c_b(p2G4_cca_t * cca_s,p2G4_cca_done_t * cca_done_s)50 int p2G4_dev_req_cca_c_b(p2G4_cca_t *cca_s, p2G4_cca_done_t *cca_done_s) {
51 return p2G4_dev_req_cca_s_c_b(&C2G4_dev_st, cca_s, cca_done_s);
52 }
53
p2G4_dev_req_wait_c_b(pb_wait_t * wait_s)54 int p2G4_dev_req_wait_c_b(pb_wait_t *wait_s){
55 return p2G4_dev_req_wait_s_c_b(&C2G4_dev_st, wait_s);
56 }
57
58
59 /*
60 * Set of functions without callbacks:
61 * (call thru to stateless version library)
62 */
63 //State for the family of functons without callbacks
64 static p2G4_dev_state_nc_t C2G4_dev_st_nc = {{0}};
65
p2G4_dev_initcom_nc(uint d,const char * s,const char * p)66 int p2G4_dev_initcom_nc(uint d, const char* s, const char* p) {
67 C2G4_dev_st_nc.ongoing = Nothing_2G4;
68 return p2G4_dev_initCom_s_nc(&C2G4_dev_st_nc, d, s, p);
69 }
70
p2G4_dev_terminate_nc()71 void p2G4_dev_terminate_nc(){
72 p2G4_dev_terminate_s_nc(&C2G4_dev_st_nc);
73 }
p2G4_dev_disconnect_nc()74 void p2G4_dev_disconnect_nc(){
75 p2G4_dev_disconnect_s_nc(&C2G4_dev_st_nc);
76 }
77
p2G4_dev_req_tx_nc_b(p2G4_tx_t * tx_s,uint8_t * packet,p2G4_tx_done_t * tx_done_s)78 int p2G4_dev_req_tx_nc_b(p2G4_tx_t *tx_s, uint8_t *packet, p2G4_tx_done_t *tx_done_s) {
79 return p2G4_dev_req_tx_s_nc_b(&C2G4_dev_st_nc, tx_s, packet, tx_done_s);
80 }
81
p2G4_dev_req_txv2_nc_b(p2G4_txv2_t * tx_s,uint8_t * packet,p2G4_tx_done_t * tx_done_s)82 int p2G4_dev_req_txv2_nc_b(p2G4_txv2_t *tx_s, uint8_t *packet, p2G4_tx_done_t *tx_done_s) {
83 return p2G4_dev_req_txv2_s_nc_b(&C2G4_dev_st_nc, tx_s, packet, tx_done_s);
84 }
85
p2G4_dev_provide_new_tx_abort_nc_b(p2G4_abort_t * abort)86 int p2G4_dev_provide_new_tx_abort_nc_b(p2G4_abort_t * abort){
87 return p2G4_dev_provide_new_tx_abort_s_nc_b(&C2G4_dev_st_nc, abort);
88 }
89
p2G4_dev_req_rx_nc_b(p2G4_rx_t * rx_s,p2G4_rx_done_t * rx_done_s,uint8_t ** buf,size_t size)90 int p2G4_dev_req_rx_nc_b(p2G4_rx_t *rx_s, p2G4_rx_done_t *rx_done_s, uint8_t **buf, size_t size){
91 return p2G4_dev_req_rx_s_nc_b(&C2G4_dev_st_nc, rx_s, rx_done_s, buf, size);
92 }
93
p2G4_dev_req_rxv2_nc_b(p2G4_rxv2_t * rx_s,p2G4_address_t * phy_addr,p2G4_rxv2_done_t * rx_done_s,uint8_t ** buf,size_t size)94 int p2G4_dev_req_rxv2_nc_b(p2G4_rxv2_t *rx_s, p2G4_address_t *phy_addr, p2G4_rxv2_done_t *rx_done_s, uint8_t **buf, size_t size){
95 return p2G4_dev_req_rxv2_s_nc_b(&C2G4_dev_st_nc, rx_s, phy_addr, rx_done_s, buf, size);
96 }
97
p2G4_dev_rx_cont_after_addr_nc_b(bool accept_rx)98 int p2G4_dev_rx_cont_after_addr_nc_b(bool accept_rx){
99 return p2G4_dev_rx_cont_after_addr_s_nc_b(&C2G4_dev_st_nc, accept_rx);
100 }
101
p2G4_dev_rxv2_cont_after_addr_nc_b(bool accept_rx,p2G4_abort_t * abort)102 int p2G4_dev_rxv2_cont_after_addr_nc_b(bool accept_rx, p2G4_abort_t *abort){
103 return p2G4_dev_rxv2_cont_after_addr_s_nc_b(&C2G4_dev_st_nc, accept_rx, abort);
104 }
105
p2G4_dev_provide_new_rx_abort_nc_b(p2G4_abort_t * abort)106 int p2G4_dev_provide_new_rx_abort_nc_b(p2G4_abort_t * abort){
107 return p2G4_dev_provide_new_rx_abort_s_nc_b(&C2G4_dev_st_nc, abort);
108 }
109
p2G4_dev_provide_new_rxv2_abort_nc_b(p2G4_abort_t * abort)110 int p2G4_dev_provide_new_rxv2_abort_nc_b(p2G4_abort_t * abort){
111 return p2G4_dev_provide_new_rxv2_abort_s_nc_b(&C2G4_dev_st_nc, abort);
112 }
113
p2G4_dev_req_imm_RSSI_nc_b(p2G4_rssi_t * RSSI_s,p2G4_rssi_done_t * RSSI_done_s)114 int p2G4_dev_req_imm_RSSI_nc_b(p2G4_rssi_t *RSSI_s, p2G4_rssi_done_t *RSSI_done_s){
115 return p2G4_dev_req_imm_RSSI_s_nc_b(&C2G4_dev_st_nc, RSSI_s, RSSI_done_s);
116 }
117
p2G4_dev_req_RSSI_nc_b(p2G4_rssi_t * RSSI_s,p2G4_rssi_done_t * RSSI_done_s)118 int p2G4_dev_req_RSSI_nc_b(p2G4_rssi_t *RSSI_s, p2G4_rssi_done_t *RSSI_done_s) {
119 return p2G4_dev_req_RSSI_s_nc_b(&C2G4_dev_st_nc, RSSI_s, RSSI_done_s);
120 }
121
p2G4_dev_req_wait_nc_b(pb_wait_t * wait_s)122 int p2G4_dev_req_wait_nc_b(pb_wait_t *wait_s){
123 return p2G4_dev_req_wait_s_nc_b(&C2G4_dev_st_nc, wait_s);
124 }
125
p2G4_dev_req_cca_nc_b(p2G4_cca_t * cca_s,p2G4_cca_done_t * cca_done_s)126 int p2G4_dev_req_cca_nc_b(p2G4_cca_t *cca_s, p2G4_cca_done_t *cca_done_s) {
127 return p2G4_dev_req_cca_s_nc_b(&C2G4_dev_st_nc, cca_s, cca_done_s);
128 }
129
p2G4_dev_provide_new_cca_abort_nc_b(p2G4_abort_t * abort)130 int p2G4_dev_provide_new_cca_abort_nc_b(p2G4_abort_t * abort){
131 return p2G4_dev_provide_new_cca_abort_s_nc_b(&C2G4_dev_st_nc, abort);
132 }
133