You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CubeSatSim/libs/libmf/source/wtimer.h

38 lines
1.7 KiB

#ifndef WTIMER_H
#define WTIMER_H
#include "libmfwtimer.h"
struct wtimer_state {
struct wtimer_state_time {
uint32_t cur;
uint16_t ref;
} time;
struct wtimer_desc __xdata *queue;
};
extern struct wtimer_state __xdata wtimer_state[2];
extern struct wtimer_callback __xdata * __xdata wtimer_pending;
#define WTIMER_NULL (0xFFFF)
#define WTIMER_NULLDESC ((struct wtimer_desc __xdata *)WTIMER_NULL)
#define WTIMER_NULLCB ((struct wtimer_callback __xdata *)WTIMER_NULL)
#define WTIMER_PTR(x) ((struct wtimer_desc __xdata *)((char __xdata *)&(x) - (char __xdata *)&((struct wtimer_desc __xdata *)0)->next))
#define WTIMER_CBPTR(x) ((struct wtimer_callback __xdata *)((char __xdata *)&(x) - (char __xdata *)&((struct wtimer_callback __xdata *)0)->next))
// the following routines must be called with (wtimer) interrupts disabled
extern __reentrantb void wtimer_addcb_core(struct wtimer_callback __xdata *desc) __reentrant;
extern __reentrantb uint8_t wtimer_removecb_core(struct wtimer_callback __xdata *desc) __reentrant;
extern __reentrantb void wtimer0_schedq(void) __reentrant;
extern __reentrantb void wtimer0_update(void) __reentrant;
extern __reentrantb void wtimer0_addcore(struct wtimer_desc __xdata *desc) __reentrant;
extern __reentrantb uint8_t wtimer0_removecb_core(struct wtimer_desc __xdata *desc) __reentrant;
extern __reentrantb void wtimer1_schedq(void) __reentrant;
extern __reentrantb void wtimer1_update(void) __reentrant;
extern __reentrantb void wtimer1_addcore(struct wtimer_desc __xdata *desc) __reentrant;
extern __reentrantb uint8_t wtimer1_removecb_core(struct wtimer_desc __xdata *desc) __reentrant;
#define WTIMER_USEASM
#endif /* WTIMER_H */

Powered by TurnKey Linux.