Skip to content
in1004kyu edited this page Jul 15, 2013 · 2 revisions

Generic Timer Module

generic_timer_type_t

typedef enum {
    GENERIC_TIMER_HYP,      /* IRQ 26 */
    GENERIC_TIMER_VIR,      /* IRQ 27 */
    GENERIC_TIMER_NSP,      /* IRQ 30 */
    GENERIC_TIMER_NUM_TYPES
} generic_timer_type_t;

Represents Generic timer type.

generic_timer_callback_t

typedef void(*generic_timer_callback_t)(void *pdata);

Callback per Generic tiemr type.

Example Usage

/* Starts the timer*/
/* Generic Timer: pass _timer_hw_callback */
generic_timer_set_callback(GENERIC_TIMER_HYP, &_timer_hw_callback );

/* Generic Timer: set interval in 'count' */
generic_timer_set_tval(GENERIC_TIMER_HYP, _channels[channel].interval);

/* Generic Timer: enable irq */
generic_timer_enable_irq(GENERIC_TIMER_HYP);

/* Generic Timer: enable interupt */
generic_timer_enable_int(GENERIC_TIMER_HYP);

Functions

generic_timer_init(timer_source)

hvmm_status_t generic_timer_init(struct timer_source *ts);

Calling this function is required only once in the entire system.

generic_timer_enable_int(generic timer type)

hvmm_status_t generic_timer_enable_int(generic_timer_type_t type);

Enable the timer interrupt. Specified by timer type

generic_timer_disable_int(generic timer type)

hvmm_status_t generic_timer_disable_int(generic_timer_type_t type);

Disable the timer. Specified by timer type

hvmm_status_t generic_timer_set_tval(generic timer type, Interval);

hvmm_status_t generic_timer_set_tval(generic_timer_type_t type, uint32_t interval);

Sets time interval. Converts from millisecond to count and sets time interval.

hvmm_status_t generic_timer_enable_irq(generic timer type);

hvmm_status_t generic_timer_enable_irq(generic_timer_type_t type);

Enable timer irq.

hvmm_status_t generic_timer_set_callback(generic timer type, callback)

hvmm_status_t generic_timer_set_callback(generic_timer_type_t type, generic_timer_callback_t callback);

Adds callback funtion. Called when occur timer interrupt.