nrfxlib API 0.1.0
Loading...
Searching...
No Matches
mpsl_timeslot.h File Reference
#include <stdint.h>
#include "nrf.h"
#include "nrf_peripherals.h"
#include "nrf_errno.h"

Go to the source code of this file.

Data Structures

struct  mpsl_timeslot_request_earliest_t
 Parameters for a request for a timeslot as early as possible. More...
 
struct  mpsl_timeslot_request_normal_t
 Parameters for a normal timeslot request. More...
 
struct  mpsl_timeslot_request_t
 Timeslot request parameters. More...
 
struct  mpsl_timeslot_signal_return_param_t
 Return parameters of the timeslot signal callback. More...
 

Macros

#define MPSL_TIMESLOT_LENGTH_MIN_US   (100UL)
 The shortest allowed timeslot event in microseconds.
 
#define MPSL_TIMESLOT_LENGTH_MAX_US   (100000UL)
 The longest allowed timeslot event in microseconds.
 
#define MPSL_TIMESLOT_DISTANCE_MAX_US   (256000000UL - 1UL)
 The longest timeslot distance in microseconds allowed for the distance parameter see mpsl_timeslot_request_normal_t.
 
#define MPSL_TIMESLOT_EARLIEST_TIMEOUT_MAX_US   (256000000UL - 1UL)
 The longest timeout in microseconds allowed when requesting the earliest possible timeslot.
 
#define MPSL_TIMESLOT_START_JITTER_US   (1UL)
 The maximum jitter in MPSL_TIMESLOT_SIGNAL_START relative to the requested start time.
 
#define MPSL_TIMESLOT_EXTENSION_TIME_MIN_US   (200UL)
 The minimum allowed timeslot extension time.
 
#define MPSL_TIMESLOT_EXTENSION_PROCESSING_TIME_MAX_US   (25UL)
 The maximum processing time to handle a timeslot extension.
 
#define MPSL_TIMESLOT_EXTENSION_MARGIN_MIN_US   (87UL)
 The latest time before the end of a timeslot when timeslot can be extended.
 
#define MPSL_TIMESLOT_CONTEXT_SIZE   (48)
 Size of a single timeslot context.
 
#define MPSL_TIMESLOT_CONTEXT_COUNT_MAX   (8)
 Maximum number of timeslot sessions.
 

Typedefs

typedef uint8_t mpsl_timeslot_session_id_t
 The timeslot session id type.
 
typedef mpsl_timeslot_signal_return_param_t *(* mpsl_timeslot_callback_t) (mpsl_timeslot_session_id_t session_id, uint32_t signal)
 The timeslot signal callback type.
 

Enumerations

enum  MPSL_TIMESLOT_SIGNAL {
  MPSL_TIMESLOT_SIGNAL_START = 0 , MPSL_TIMESLOT_SIGNAL_TIMER0 = 1 , MPSL_TIMESLOT_SIGNAL_RADIO = 2 , MPSL_TIMESLOT_SIGNAL_EXTEND_FAILED = 3 ,
  MPSL_TIMESLOT_SIGNAL_EXTEND_SUCCEEDED = 4 , MPSL_TIMESLOT_SIGNAL_BLOCKED = 5 , MPSL_TIMESLOT_SIGNAL_CANCELLED = 6 , MPSL_TIMESLOT_SIGNAL_SESSION_IDLE = 7 ,
  MPSL_TIMESLOT_SIGNAL_INVALID_RETURN = 8 , MPSL_TIMESLOT_SIGNAL_SESSION_CLOSED = 9 , MPSL_TIMESLOT_SIGNAL_OVERSTAYED = 10
}
 The timeslot signal types. More...
 
enum  MPSL_TIMESLOT_SIGNAL_ACTION { MPSL_TIMESLOT_SIGNAL_ACTION_NONE = 0 , MPSL_TIMESLOT_SIGNAL_ACTION_EXTEND = 1 , MPSL_TIMESLOT_SIGNAL_ACTION_END = 2 , MPSL_TIMESLOT_SIGNAL_ACTION_REQUEST = 3 }
 The actions requested by the signal callback. More...
 
enum  MPSL_TIMESLOT_HFCLK_CFG { MPSL_TIMESLOT_HFCLK_CFG_XTAL_GUARANTEED = 0 , MPSL_TIMESLOT_HFCLK_CFG_NO_GUARANTEE = 1 }
 Timeslot high frequency clock source configuration. More...
 
enum  MPSL_TIMESLOT_PRIORITY { MPSL_TIMESLOT_PRIORITY_HIGH = 0 , MPSL_TIMESLOT_PRIORITY_NORMAL = 1 }
 Timeslot event priorities. More...
 
enum  MPSL_TIMESLOT_REQUEST_TYPE { MPSL_TIMESLOT_REQ_TYPE_EARLIEST = 0 , MPSL_TIMESLOT_REQ_TYPE_NORMAL = 1 }
 Timeslot request type. More...
 

Functions

int32_t mpsl_timeslot_session_count_set (void *p_mem, uint8_t n_sessions)
 Set or update the MPSL timeslot configuration.
 
int32_t mpsl_timeslot_session_open (mpsl_timeslot_callback_t mpsl_timeslot_signal_callback, mpsl_timeslot_session_id_t *p_session_id)
 Opens a session for timeslot requests.
 
int32_t mpsl_timeslot_session_close (mpsl_timeslot_session_id_t session_id)
 Closes a session for timeslot requests.
 
int32_t mpsl_timeslot_request (mpsl_timeslot_session_id_t session_id, mpsl_timeslot_request_t const *p_request)
 Requests a timeslot.