Loading...
Searching...
No Matches

ztimer 64bit API More...

Detailed Description

ztimer 64bit API

Author
Kaspar Schleiser kaspa.nosp@m.r@sc.nosp@m.hleis.nosp@m.er.d.nosp@m.e

Definition in file ztimer64.h.

#include <stdint.h>
#include "irq.h"
#include "mutex.h"
#include "msg.h"
#include "ztimer.h"
+ Include dependency graph for ztimer64.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ztimer64_base
 Minimum information for each timer. More...
 
struct  ztimer64_t
 ztimer64 structure More...
 
struct  ztimer64_clock
 ztimer64 clock structure More...
 

Macros

#define MSG_ZTIMER64   0xc83f
 msg type used by ztimer64_msg_receive_timeout
 

Typedefs

typedef struct ztimer64_base ztimer64_base_t
 ztimer64_t forward declaration
 
typedef struct ztimer64_clock ztimer64_clock_t
 ztimer64_clock_t forward declaration
 

Functions

uint64_t ztimer64_now (ztimer64_clock_t *clock)
 Get the current time from a clock.
 
static uint64_t ztimer64_offset2absolute (ztimer64_clock_t *clock, uint64_t offset)
 Get absolute target time for a clock given offset.
 
void ztimer64_set_at (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t target)
 Set a timer on a clock (absolute version)
 
static void ztimer64_set (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t offset)
 Set a timer on a clock (relative version)
 
unsigned ztimer64_is_set (const ztimer64_t *timer)
 Check if a timer is currently active.
 
void ztimer64_remove (ztimer64_clock_t *clock, ztimer64_t *timer)
 Remove a timer from a clock.
 
void ztimer64_set_msg_at (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t target, msg_t *msg, kernel_pid_t target_pid)
 Post a message at a specified time.
 
static void ztimer64_set_msg (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t offset, msg_t *msg, kernel_pid_t target_pid)
 Post a message after a delay (relative version)
 
int ztimer64_msg_receive_until (ztimer64_clock_t *clock, msg_t *msg, uint64_t target)
 receive a message (blocking, with absolute timeout)
 
static int ztimer64_msg_receive_timeout (ztimer64_clock_t *clock, msg_t *msg, uint64_t timeout)
 receive a message (blocking, with relative timeout)
 
void ztimer64_periodic_wakeup (ztimer64_clock_t *clock, uint64_t *last_wakeup, uint64_t period)
 Suspend the calling thread until the time (last_wakeup + period)
 
void ztimer64_sleep_until (ztimer64_clock_t *clock, uint64_t target)
 Put the calling thread to sleep until the specified time.
 
static void ztimer64_sleep (ztimer64_clock_t *clock, uint64_t duration)
 Put the calling thread to sleep for the specified number of ticks.
 
static void ztimer64_spin_until (ztimer64_clock_t *clock, uint64_t target)
 Busy-wait until specified target time.
 
void ztimer64_set_wakeup_at (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t target, kernel_pid_t pid)
 Set a timer that wakes up a thread (absolute version)
 
static void ztimer64_set_wakeup (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t offset, kernel_pid_t pid)
 Set a timer that wakes up a thread (relative version)
 
void ztimer64_set_timeout_flag_at (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t target)
 Set timeout thread flag at target time.
 
static void ztimer64_set_timeout_flag (ztimer64_clock_t *clock, ztimer64_t *timer, uint64_t timeout)
 Set timeout thread flag after timeout.
 
int ztimer64_mutex_lock_until (ztimer64_clock_t *clock, mutex_t *mutex, uint64_t target)
 Try to lock the given mutex, but give up at target time.
 
static int ztimer64_mutex_lock_timeout (ztimer64_clock_t *clock, mutex_t *mutex, uint64_t timeout)
 Try to lock the given mutex, but give up after timeout.
 
int ztimer64_rmutex_lock_until (ztimer64_clock_t *clock, rmutex_t *rmutex, uint64_t target)
 Try to lock the given rmutex, but give up at time.
 
static int ztimer64_rmutex_lock_timeout (ztimer64_clock_t *clock, rmutex_t *rmutex, uint64_t timeout)
 Try to lock the given rmutex, but give up after timeout.
 
void ztimer64_update_head_offset (ztimer64_clock_t *clock)
 Update ztimer clock head list offset.
 
void ztimer64_init (void)
 Initialize the board-specific default ztimer configuration.
 
void ztimer64_clock_init (ztimer64_clock_t *clock, ztimer_clock_t *base_clock)
 Initialize clock to be run from base_clock.
 
int64_t ztimer64_overhead (ztimer64_clock_t *clock, uint64_t base)
 Measure ztimer64 overhead.
 

Variables

ztimer64_clock_t *const ZTIMER64_USEC
 Default ztimer microsecond clock.
 
ztimer64_clock_t *const ZTIMER64_MSEC
 Default ztimer millisecond clock.
 
ztimer64_clock_t *const ZTIMER64_SEC
 Default ztimer second clock.