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