nrfxlib API 2.8.99
Loading...
Searching...
No Matches
MPSL Protocol interface for radio coexistence interface.

Topics

 MPSL protocol interface abstraction for coexistence module
 

Data Structures

struct  mpsl_cx_request_t
 Structure with parameters describing next coexistence request. More...
 

Typedefs

typedef uint8_t mpsl_cx_op_map_t
 Bitmap representing a list of radio operations.
 
typedef uint8_t mpsl_cx_prio_t
 Priority of given radio operation.
 
typedef void(* mpsl_cx_cb_t) (mpsl_cx_op_map_t granted_ops)
 Callback used to notify radio protocol about changes of granted radio operations.
 

Enumerations

enum  mpsl_cx_op_t { MPSL_CX_OP_IDLE_LISTEN = 0x01 , MPSL_CX_OP_RX = 0x02 , MPSL_CX_OP_TX = 0x04 }
 Radio operations which may be requested from or granted by PTA. More...
 
enum  mpsl_cx_req_trig_t { MPSL_CX_REQ_TRIG_INSTANT }
 Coexistence request signal triggers. More...
 

Functions

int32_t mpsl_cx_request (const mpsl_cx_request_t *p_req_params)
 Request radio operation from PTA.
 
int32_t mpsl_cx_release (void)
 Release last radio operation requested from PTA.
 
int32_t mpsl_cx_granted_ops_get (mpsl_cx_op_map_t *p_granted_ops)
 Get list of radio operations currently granted by PTA.
 
uint32_t mpsl_cx_req_grant_delay_get (void)
 Get time PTA needs to respond with grant signal to request signal.
 
int32_t mpsl_cx_register_callback (mpsl_cx_cb_t cb)
 Register callback function called when radio operations granted by PTA change.
 

Detailed Description

This module provides the interface for the protocols to communicate with a coexistence arbitrator, Packet Traffic Arbitrator, PTA.

Concurrency model of this module: Each function defined in this interface may be called from any execution context (thread, including preemptive thread in operating system, or handler). However, none of the functions is re-entrant. It is responsibility of API user to ensure that even if one function is preempted by other execution context, the other execution context does not call preempted function.

It is not allowed to call a function defined in this module while the same function is called from another preempted context. It is allowed to call any function defined in this module while any other is preempted. It is allowed to call any function defined in this module from mpsl_cx_cb_t implementation. Callback function mpsl_cx_cb_t called from this module may be called from thread or handler context. But it never preempts itself.