Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/time/timeout.h

    ra6e55886 r111b9b9  
    4242typedef void (*timeout_handler_t)(void *arg);
    4343
     44typedef uint64_t deadline_t;
     45#define DEADLINE_NEVER ((deadline_t) UINT64_MAX)
     46
    4447typedef struct {
    45         IRQ_SPINLOCK_DECLARE(lock);
    46 
    47         /** Link to the list of active timeouts on CURRENT->cpu */
     48        /** Link to the list of active timeouts on timeout->cpu */
    4849        link_t link;
    49         /** Timeout will be activated in this amount of clock() ticks. */
    50         uint64_t ticks;
     50        /** Timeout will be activated when current clock tick reaches this value. */
     51        deadline_t deadline;
    5152        /** Function that will be called on timeout activation. */
    5253        timeout_handler_t handler;
     
    5556        /** On which processor is this timeout registered. */
    5657        cpu_t *cpu;
     58        /** Used to synchronize with the handler callback. */
     59        atomic_bool finished;
    5760} timeout_t;
    5861
    5962#define us2ticks(us)  ((uint64_t) (((uint32_t) (us) / (1000000 / HZ))))
    6063
     64extern deadline_t timeout_deadline_in_usec(uint32_t us);
     65
    6166extern void timeout_init(void);
    6267extern void timeout_initialize(timeout_t *);
    63 extern void timeout_reinitialize(timeout_t *);
    6468extern void timeout_register(timeout_t *, uint64_t, timeout_handler_t, void *);
     69extern void timeout_register_deadline(timeout_t *, deadline_t, timeout_handler_t, void *);
    6570extern bool timeout_unregister(timeout_t *);
    6671
Note: See TracChangeset for help on using the changeset viewer.