Eliminate unnecessary K_TIMER type
Since the K_TIMER type is a non-public API used within the micro- kernel itself, it doesn't provide any real type abstraction benefit that isn't served equally well by the struct k_timer type it is based on. Change-Id: I482d7c0459d5734402be541322ff752dd1a3714a Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
This commit is contained in:
parent
19ec0685df
commit
56f93e3a21
6 changed files with 33 additions and 37 deletions
|
@ -54,10 +54,6 @@ struct k_timer {
|
||||||
struct k_args *Args;
|
struct k_args *Args;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Kernel timer type (public) */
|
|
||||||
|
|
||||||
typedef struct k_timer K_TIMER;
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
/* PROCESSOR SPECIFIC TYPES & DATA STRUCTURES */
|
/* PROCESSOR SPECIFIC TYPES & DATA STRUCTURES */
|
||||||
|
|
||||||
|
@ -282,7 +278,7 @@ struct _a1arg {
|
||||||
struct _c1arg {
|
struct _c1arg {
|
||||||
int64_t time1;
|
int64_t time1;
|
||||||
int64_t time2;
|
int64_t time2;
|
||||||
K_TIMER *timer;
|
struct k_timer *timer;
|
||||||
ksem_t sema;
|
ksem_t sema;
|
||||||
ktask_t task;
|
ktask_t task;
|
||||||
};
|
};
|
||||||
|
@ -413,7 +409,7 @@ struct k_args {
|
||||||
K_CREF Ctxt;
|
K_CREF Ctxt;
|
||||||
union {
|
union {
|
||||||
int32_t ticks;
|
int32_t ticks;
|
||||||
K_TIMER *timer;
|
struct k_timer *timer;
|
||||||
int rcode;
|
int rcode;
|
||||||
} Time;
|
} Time;
|
||||||
K_ARGS_ARGS Args;
|
K_ARGS_ARGS Args;
|
||||||
|
|
|
@ -47,7 +47,7 @@ void DeListWaiter(struct k_args *pReqProc)
|
||||||
pReqProc->Head = NULL;
|
pReqProc->Head = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void myfreetimer(K_TIMER * *ppTimer)
|
void myfreetimer(struct k_timer * *ppTimer)
|
||||||
{
|
{
|
||||||
if (*ppTimer) {
|
if (*ppTimer) {
|
||||||
delist_timer(*ppTimer);
|
delist_timer(*ppTimer);
|
||||||
|
|
|
@ -77,7 +77,7 @@ int CalcFreeReaderSpace(struct k_args *pReaderList);
|
||||||
int CalcAvailWriterData(struct k_args *pWriterList);
|
int CalcAvailWriterData(struct k_args *pWriterList);
|
||||||
|
|
||||||
void DeListWaiter(struct k_args *pReqProc);
|
void DeListWaiter(struct k_args *pReqProc);
|
||||||
void myfreetimer(K_TIMER **ppTimer);
|
void myfreetimer(struct k_timer **ppTimer);
|
||||||
|
|
||||||
void setup_movedata(struct k_args *A,
|
void setup_movedata(struct k_args *A,
|
||||||
struct pipe_struct *pPipe,
|
struct pipe_struct *pPipe,
|
||||||
|
|
|
@ -62,8 +62,8 @@ extern const int _k_num_events;
|
||||||
extern struct k_proc *_k_current_task;
|
extern struct k_proc *_k_current_task;
|
||||||
extern uint32_t _k_task_priority_bitmap[];
|
extern uint32_t _k_task_priority_bitmap[];
|
||||||
|
|
||||||
extern K_TIMER *_k_timer_list_head;
|
extern struct k_timer *_k_timer_list_head;
|
||||||
extern K_TIMER *_k_timer_list_tail;
|
extern struct k_timer *_k_timer_list_tail;
|
||||||
|
|
||||||
extern struct nano_stack _k_command_stack;
|
extern struct nano_stack _k_command_stack;
|
||||||
extern struct nano_lifo _k_server_command_packet_free;
|
extern struct nano_lifo _k_server_command_packet_free;
|
||||||
|
@ -76,10 +76,10 @@ extern void _k_task_group_op(struct k_args *A);
|
||||||
extern void _k_task_priority_set(struct k_args *A);
|
extern void _k_task_priority_set(struct k_args *A);
|
||||||
extern void _k_task_yield(struct k_args *A);
|
extern void _k_task_yield(struct k_args *A);
|
||||||
|
|
||||||
extern void enlist_timer(K_TIMER *T);
|
extern void enlist_timer(struct k_timer *T);
|
||||||
extern void delist_timer(K_TIMER *T);
|
extern void delist_timer(struct k_timer *T);
|
||||||
extern void enlist_timeout(struct k_args *P);
|
extern void enlist_timeout(struct k_args *P);
|
||||||
extern void delist_timeout(K_TIMER *T);
|
extern void delist_timeout(struct k_timer *T);
|
||||||
extern void force_timeout(struct k_args *A);
|
extern void force_timeout(struct k_args *A);
|
||||||
extern void _k_timer_list_update(int ticks);
|
extern void _k_timer_list_update(int ticks);
|
||||||
extern void _k_timer_alloc(struct k_args *P);
|
extern void _k_timer_alloc(struct k_args *P);
|
||||||
|
@ -148,7 +148,7 @@ extern void set_state_bit(struct k_proc *, uint32_t);
|
||||||
extern void reset_state_bit(struct k_proc *, uint32_t);
|
extern void reset_state_bit(struct k_proc *, uint32_t);
|
||||||
extern void _k_task_call(struct k_args *);
|
extern void _k_task_call(struct k_args *);
|
||||||
|
|
||||||
extern void delist_timeout(K_TIMER *T);
|
extern void delist_timeout(struct k_timer *T);
|
||||||
extern void enlist_timeout(struct k_args *A);
|
extern void enlist_timeout(struct k_args *A);
|
||||||
extern void force_timeout(struct k_args *A);
|
extern void force_timeout(struct k_args *A);
|
||||||
|
|
||||||
|
|
|
@ -38,10 +38,10 @@
|
||||||
#include <minik.h>
|
#include <minik.h>
|
||||||
#include <drivers/system_timer.h>
|
#include <drivers/system_timer.h>
|
||||||
|
|
||||||
extern K_TIMER _k_timer_blocks[];
|
extern struct k_timer _k_timer_blocks[];
|
||||||
|
|
||||||
K_TIMER *_k_timer_list_head = NULL;
|
struct k_timer *_k_timer_list_head = NULL;
|
||||||
K_TIMER *_k_timer_list_tail = NULL;
|
struct k_timer *_k_timer_list_tail = NULL;
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
|
@ -59,7 +59,7 @@ K_TIMER *_k_timer_list_tail = NULL;
|
||||||
* RETURNS: timer object identifier
|
* RETURNS: timer object identifier
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline ktimer_t _timer_ptr_to_id(K_TIMER *timer)
|
static inline ktimer_t _timer_ptr_to_id(struct k_timer *timer)
|
||||||
{
|
{
|
||||||
return (ktimer_t)(0x00010000u + (uint32_t)(timer - &_k_timer_blocks[0]));
|
return (ktimer_t)(0x00010000u + (uint32_t)(timer - &_k_timer_blocks[0]));
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,7 @@ static inline ktimer_t _timer_ptr_to_id(K_TIMER *timer)
|
||||||
* RETURNS: timer pointer
|
* RETURNS: timer pointer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline K_TIMER *_timer_id_to_ptr(ktimer_t timer)
|
static inline struct k_timer *_timer_id_to_ptr(ktimer_t timer)
|
||||||
{
|
{
|
||||||
return &_k_timer_blocks[OBJ_INDEX(timer)];
|
return &_k_timer_blocks[OBJ_INDEX(timer)];
|
||||||
}
|
}
|
||||||
|
@ -85,10 +85,10 @@ static inline K_TIMER *_timer_id_to_ptr(ktimer_t timer)
|
||||||
* RETURNS: N/A
|
* RETURNS: N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void enlist_timer(K_TIMER *T)
|
void enlist_timer(struct k_timer *T)
|
||||||
{
|
{
|
||||||
K_TIMER *P = _k_timer_list_head;
|
struct k_timer *P = _k_timer_list_head;
|
||||||
K_TIMER *Q = NULL;
|
struct k_timer *Q = NULL;
|
||||||
|
|
||||||
while (P && (T->duration > P->duration)) {
|
while (P && (T->duration > P->duration)) {
|
||||||
T->duration -= P->duration;
|
T->duration -= P->duration;
|
||||||
|
@ -115,10 +115,10 @@ void enlist_timer(K_TIMER *T)
|
||||||
* RETURNS: N/A
|
* RETURNS: N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void delist_timer(K_TIMER *T)
|
void delist_timer(struct k_timer *T)
|
||||||
{
|
{
|
||||||
K_TIMER *P = T->Forw;
|
struct k_timer *P = T->Forw;
|
||||||
K_TIMER *Q = T->Back;
|
struct k_timer *Q = T->Back;
|
||||||
|
|
||||||
if (P) {
|
if (P) {
|
||||||
P->duration += T->duration;
|
P->duration += T->duration;
|
||||||
|
@ -141,7 +141,7 @@ void delist_timer(K_TIMER *T)
|
||||||
|
|
||||||
void enlist_timeout(struct k_args *P)
|
void enlist_timeout(struct k_args *P)
|
||||||
{
|
{
|
||||||
K_TIMER *T;
|
struct k_timer *T;
|
||||||
|
|
||||||
GETTIMER(T);
|
GETTIMER(T);
|
||||||
T->duration = P->Time.ticks;
|
T->duration = P->Time.ticks;
|
||||||
|
@ -160,7 +160,7 @@ void enlist_timeout(struct k_args *P)
|
||||||
|
|
||||||
void force_timeout(struct k_args *A)
|
void force_timeout(struct k_args *A)
|
||||||
{
|
{
|
||||||
K_TIMER *T = A->Time.timer;
|
struct k_timer *T = A->Time.timer;
|
||||||
|
|
||||||
if (T->duration != -1) {
|
if (T->duration != -1) {
|
||||||
delist_timer(T);
|
delist_timer(T);
|
||||||
|
@ -175,7 +175,7 @@ void force_timeout(struct k_args *A)
|
||||||
* RETURNS: N/A
|
* RETURNS: N/A
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void delist_timeout(K_TIMER *T)
|
void delist_timeout(struct k_timer *T)
|
||||||
{
|
{
|
||||||
if (T->duration != -1)
|
if (T->duration != -1)
|
||||||
delist_timer(T);
|
delist_timer(T);
|
||||||
|
@ -204,7 +204,7 @@ void delist_timeout(K_TIMER *T)
|
||||||
|
|
||||||
void _k_timer_list_update(int ticks)
|
void _k_timer_list_update(int ticks)
|
||||||
{
|
{
|
||||||
K_TIMER *T;
|
struct k_timer *T;
|
||||||
|
|
||||||
while (_k_timer_list_head != NULL) {
|
while (_k_timer_list_head != NULL) {
|
||||||
_k_timer_list_head->duration -= ticks;
|
_k_timer_list_head->duration -= ticks;
|
||||||
|
@ -246,7 +246,7 @@ void _k_timer_alloc(
|
||||||
struct k_args *P /* pointer to timer allocation request arguments */
|
struct k_args *P /* pointer to timer allocation request arguments */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
K_TIMER *T;
|
struct k_timer *T;
|
||||||
struct k_args *A;
|
struct k_args *A;
|
||||||
|
|
||||||
T = _Cget(&_k_timer_free);
|
T = _Cget(&_k_timer_free);
|
||||||
|
@ -272,7 +272,7 @@ void _k_timer_alloc(
|
||||||
ktimer_t task_timer_alloc(void)
|
ktimer_t task_timer_alloc(void)
|
||||||
{
|
{
|
||||||
struct k_args A;
|
struct k_args A;
|
||||||
K_TIMER *timer;
|
struct k_timer *timer;
|
||||||
|
|
||||||
A.Comm = TALLOC;
|
A.Comm = TALLOC;
|
||||||
KERNEL_ENTRY(&A);
|
KERNEL_ENTRY(&A);
|
||||||
|
@ -292,7 +292,7 @@ ktimer_t task_timer_alloc(void)
|
||||||
|
|
||||||
void _k_timer_dealloc(struct k_args *P)
|
void _k_timer_dealloc(struct k_args *P)
|
||||||
{
|
{
|
||||||
K_TIMER *T = P->Args.c1.timer;
|
struct k_timer *T = P->Args.c1.timer;
|
||||||
struct k_args *A = T->Args;
|
struct k_args *A = T->Args;
|
||||||
|
|
||||||
if (T->duration != -1)
|
if (T->duration != -1)
|
||||||
|
@ -336,7 +336,7 @@ void _k_timer_start(struct k_args *P /* pointer to timer start
|
||||||
request arguments */
|
request arguments */
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
K_TIMER *T = P->Args.c1.timer; /* ptr to the timer to start */
|
struct k_timer *T = P->Args.c1.timer; /* ptr to the timer to start */
|
||||||
|
|
||||||
if (T->duration != -1) /* Stop the timer if it is active */
|
if (T->duration != -1) /* Stop the timer if it is active */
|
||||||
delist_timer(T);
|
delist_timer(T);
|
||||||
|
@ -443,7 +443,7 @@ void task_timer_restart(ktimer_t timer, /* timer to restart */
|
||||||
|
|
||||||
void _k_timer_stop(struct k_args *P)
|
void _k_timer_stop(struct k_args *P)
|
||||||
{
|
{
|
||||||
K_TIMER *T = P->Args.c1.timer;
|
struct k_timer *T = P->Args.c1.timer;
|
||||||
|
|
||||||
if (T->duration != -1)
|
if (T->duration != -1)
|
||||||
delist_timer(T);
|
delist_timer(T);
|
||||||
|
@ -481,7 +481,7 @@ void task_timer_stop(ktimer_t timer /* timer to stop */
|
||||||
|
|
||||||
void _k_task_wakeup(struct k_args *P)
|
void _k_task_wakeup(struct k_args *P)
|
||||||
{
|
{
|
||||||
K_TIMER *T;
|
struct k_timer *T;
|
||||||
struct k_proc *X;
|
struct k_proc *X;
|
||||||
|
|
||||||
X = P->Ctxt.proc;
|
X = P->Ctxt.proc;
|
||||||
|
@ -503,7 +503,7 @@ void _k_task_wakeup(struct k_args *P)
|
||||||
|
|
||||||
void _k_task_sleep(struct k_args *P)
|
void _k_task_sleep(struct k_args *P)
|
||||||
{
|
{
|
||||||
K_TIMER *T;
|
struct k_timer *T;
|
||||||
|
|
||||||
if ((P->Time.ticks) <= 0)
|
if ((P->Time.ticks) <= 0)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -343,7 +343,7 @@ def kernel_main_c_timers():
|
||||||
# timer descriptors
|
# timer descriptors
|
||||||
|
|
||||||
kernel_main_c_out("\n" +
|
kernel_main_c_out("\n" +
|
||||||
"K_TIMER _k_timer_blocks[%d] =\n" % (num_timers) +
|
"struct k_timer _k_timer_blocks[%d] =\n" % (num_timers) +
|
||||||
"{\n" +
|
"{\n" +
|
||||||
" {NULL, NULL, 0, 0, (struct k_args *)0xffffffff},\n")
|
" {NULL, NULL, 0, 0, (struct k_args *)0xffffffff},\n")
|
||||||
for i in range(1, num_timers - 1):
|
for i in range(1, num_timers - 1):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue