6#ifndef CAFFEINE_SAL_NWK_TRANSPORT_H
7#define CAFFEINE_SAL_NWK_TRANSPORT_H
19#define CFN_SAL_NWK_TYPE_TRANSPORT CFN_SAL_TYPE('T', 'P', 'T')
87 uint32_t peripheral_id,
95 CFN_HAL_POPULATE_DRIVER(
111 return CFN_HAL_ERROR_BAD_PARAM;
113 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
121 return CFN_HAL_ERROR_BAD_PARAM;
131 return CFN_HAL_ERROR_BAD_PARAM;
133 driver->config = config;
140 if (!driver || !config || !driver->config)
142 return CFN_HAL_ERROR_BAD_PARAM;
144 *config = *(driver->config);
145 return CFN_HAL_ERROR_OK;
154 return CFN_HAL_ERROR_BAD_PARAM;
156 driver->cb = callback;
157 driver->cb_user_arg = user_arg;
158 return cfn_hal_base_callback_register(
163 cfn_hal_power_state_t state)
167 return CFN_HAL_ERROR_BAD_PARAM;
177 return CFN_HAL_ERROR_BAD_PARAM;
187 return CFN_HAL_ERROR_BAD_PARAM;
193 uint32_t *event_mask)
197 return CFN_HAL_ERROR_BAD_PARAM;
207 return CFN_HAL_ERROR_BAD_PARAM;
217 return CFN_HAL_ERROR_BAD_PARAM;
223 uint32_t *error_mask)
227 return CFN_HAL_ERROR_BAD_PARAM;
239 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
247 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
248 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
257 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
266 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
273 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
280 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
287 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
294 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
302 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
310 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
Core definitions and macros for Caffeine SAL.
#define CFN_SAL_CREATE_DRIVER_TYPE(prefix, config_type, api_type, phy_type, cb_type)
Definition cfn_sal.h:38
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_error_disable(cfn_sal_nwk_transport_t *driver, uint32_t error_mask)
Definition cfn_sal_nwk_transport.h:212
CFN_HAL_VMT_CHECK(struct cfn_sal_nwk_transport_api_s)
cfn_hal_error_code_t cfn_sal_nwk_transport_construct(cfn_sal_nwk_transport_t *driver, const cfn_sal_nwk_transport_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_nwk_transport_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_config_set(cfn_sal_nwk_transport_t *driver, const cfn_sal_nwk_transport_config_t *config)
Definition cfn_sal_nwk_transport.h:126
#define CFN_SAL_NWK_TYPE_TRANSPORT
Definition cfn_sal_nwk_transport.h:19
void(* cfn_sal_nwk_transport_callback_t)(cfn_sal_nwk_transport_t *driver, uint32_t event, uint32_t error, size_t data_len, void *user_arg)
Definition cfn_sal_nwk_transport.h:44
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_event_enable(cfn_sal_nwk_transport_t *driver, uint32_t event_mask)
Definition cfn_sal_nwk_transport.h:172
CFN_HAL_INLINE void cfn_sal_nwk_transport_populate(cfn_sal_nwk_transport_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_nwk_transport_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_nwk_transport_config_t *config, cfn_sal_nwk_transport_callback_t callback, void *user_arg)
Definition cfn_sal_nwk_transport.h:86
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_config_get(cfn_sal_nwk_transport_t *driver, cfn_sal_nwk_transport_config_t *config)
Definition cfn_sal_nwk_transport.h:137
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_flush_rx(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:278
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_error_get(cfn_sal_nwk_transport_t *driver, uint32_t *error_mask)
Definition cfn_sal_nwk_transport.h:222
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_callback_register(cfn_sal_nwk_transport_t *driver, cfn_sal_nwk_transport_callback_t callback, void *user_arg)
Definition cfn_sal_nwk_transport.h:148
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_send_async(cfn_sal_nwk_transport_t *driver, const uint8_t *data, size_t len)
Definition cfn_sal_nwk_transport.h:253
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_accept(cfn_sal_nwk_transport_t *driver, cfn_sal_nwk_transport_t **client_driver_out)
Definition cfn_sal_nwk_transport.h:299
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_deinit(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:117
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_send(cfn_sal_nwk_transport_t *driver, const uint8_t *data, size_t len, uint32_t timeout)
Definition cfn_sal_nwk_transport.h:234
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_receive(cfn_sal_nwk_transport_t *driver, uint8_t *buffer, size_t max_len, size_t *received_len, uint32_t timeout)
Definition cfn_sal_nwk_transport.h:244
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_event_get(cfn_sal_nwk_transport_t *driver, uint32_t *event_mask)
Definition cfn_sal_nwk_transport.h:192
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_receive_async(cfn_sal_nwk_transport_t *driver, uint8_t *buffer, size_t max_len)
Definition cfn_sal_nwk_transport.h:262
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_power_state_set(cfn_sal_nwk_transport_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_nwk_transport.h:162
cfn_hal_error_code_t cfn_sal_nwk_transport_destruct(cfn_sal_nwk_transport_t *driver)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_get_bytes_available(cfn_sal_nwk_transport_t *driver, size_t *count_out)
Definition cfn_sal_nwk_transport.h:307
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_init(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:107
cfn_sal_nwk_transport_event_t
Definition cfn_sal_nwk_transport.h:24
@ CFN_SAL_NWK_TRANSPORT_EVENT_NONE
Definition cfn_sal_nwk_transport.h:25
@ CFN_SAL_NWK_TRANSPORT_EVENT_BUFFER_OVERFLOW
Definition cfn_sal_nwk_transport.h:28
@ CFN_SAL_NWK_TRANSPORT_EVENT_RX_READY
Definition cfn_sal_nwk_transport.h:27
@ CFN_SAL_NWK_TRANSPORT_EVENT_TX_COMPLETE
Definition cfn_sal_nwk_transport.h:26
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_listen(cfn_sal_nwk_transport_t *driver, uint16_t port)
Definition cfn_sal_nwk_transport.h:292
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_flush(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:271
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_error_enable(cfn_sal_nwk_transport_t *driver, uint32_t error_mask)
Definition cfn_sal_nwk_transport.h:202
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_flush_tx(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:285
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_nwk_transport_event_disable(cfn_sal_nwk_transport_t *driver, uint32_t event_mask)
Definition cfn_sal_nwk_transport.h:182
struct cfn_sal_nwk_transport_s cfn_sal_nwk_transport_t
Definition cfn_sal_nwk_transport.h:41
Transport Virtual Method Table (VMT).
Definition cfn_sal_nwk_transport.h:51
cfn_hal_error_code_t(* accept)(cfn_sal_nwk_transport_t *driver, cfn_sal_nwk_transport_t **client_driver_out)
Definition cfn_sal_nwk_transport.h:70
cfn_hal_api_base_t base
Definition cfn_sal_nwk_transport.h:52
cfn_hal_error_code_t(* get_bytes_available)(cfn_sal_nwk_transport_t *driver, size_t *count_out)
Definition cfn_sal_nwk_transport.h:73
cfn_hal_error_code_t(* receive_async)(cfn_sal_nwk_transport_t *driver, uint8_t *buffer, size_t max_len)
Definition cfn_sal_nwk_transport.h:61
cfn_hal_error_code_t(* flush_tx)(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:66
cfn_hal_error_code_t(* listen)(cfn_sal_nwk_transport_t *driver, uint16_t port)
Definition cfn_sal_nwk_transport.h:69
cfn_hal_error_code_t(* flush_rx)(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:65
cfn_hal_error_code_t(* receive)(cfn_sal_nwk_transport_t *driver, uint8_t *buffer, size_t max_len, size_t *received_len, uint32_t timeout)
Definition cfn_sal_nwk_transport.h:56
cfn_hal_error_code_t(* send)(cfn_sal_nwk_transport_t *driver, const uint8_t *data, size_t len, uint32_t timeout)
Definition cfn_sal_nwk_transport.h:55
cfn_hal_error_code_t(* send_async)(cfn_sal_nwk_transport_t *driver, const uint8_t *data, size_t len)
Definition cfn_sal_nwk_transport.h:60
cfn_hal_error_code_t(* flush)(cfn_sal_nwk_transport_t *driver)
Definition cfn_sal_nwk_transport.h:64
Definition cfn_sal_nwk_transport.h:34
void * custom
Definition cfn_sal_nwk_transport.h:38
size_t rx_buffer_size
Definition cfn_sal_nwk_transport.h:36
size_t tx_buffer_size
Definition cfn_sal_nwk_transport.h:35
uint32_t baudrate
Definition cfn_sal_nwk_transport.h:37
Generic physical mapping for services.
Definition cfn_sal_types.h:26