All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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.