46 lines
1007 B
C
46 lines
1007 B
C
|
|
/*
|
||
|
|
* Copyright (C) 2018 Alibaba Group Holding Limited
|
||
|
|
*/
|
||
|
|
|
||
|
|
/*
|
||
|
|
modification history
|
||
|
|
--------------------
|
||
|
|
14jan2018, init vesion
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef __cpu_tickless_h__
|
||
|
|
#define __cpu_tickless_h__
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#include "k_api.h"
|
||
|
|
#include "pwr_state.h"
|
||
|
|
|
||
|
|
typedef kstat_t (*FUNC_ONE_SHOT_INIT) (void);
|
||
|
|
typedef uint32_t (*FUNC_ONE_SHOT_SECONDS_MAX) (void);
|
||
|
|
typedef kstat_t (*FUNC_ONE_SHOT_START) (uint64_t planUse);
|
||
|
|
typedef kstat_t (*FUNC_ONE_SHOT_STOP) (uint64_t * pPassedUs);
|
||
|
|
|
||
|
|
typedef struct
|
||
|
|
{
|
||
|
|
FUNC_ONE_SHOT_INIT one_shot_init;
|
||
|
|
FUNC_ONE_SHOT_SECONDS_MAX one_shot_seconds_max;
|
||
|
|
FUNC_ONE_SHOT_START one_shot_start;
|
||
|
|
FUNC_ONE_SHOT_STOP one_shot_stop;
|
||
|
|
}one_shot_timer_t;
|
||
|
|
|
||
|
|
extern kstat_t tickless_init (void);
|
||
|
|
extern void tickless_c_states_add(uint32_t c_state_set);
|
||
|
|
extern void tickless_one_shot_timer_save
|
||
|
|
(cpu_cstate_t c_state, one_shot_timer_t * p_timer);
|
||
|
|
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* __cpu_tickless_h__ */
|
||
|
|
|