From 697200e9421ce737089af5a5391ec0dac5270a96 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Wed, 23 Apr 1997 17:12:19 +0000 Subject: [PATCH] fixed warnings --- src/db/dbEvent.c | 157 +++++++++++++++++++++++++---------------------- src/db/dbEvent.h | 26 ++++---- 2 files changed, 97 insertions(+), 86 deletions(-) diff --git a/src/db/dbEvent.c b/src/db/dbEvent.c index 25f8893e8..d3dbf4151 100644 --- a/src/db/dbEvent.c +++ b/src/db/dbEvent.c @@ -167,11 +167,11 @@ int db_event_list(char *name) #ifdef DEBUG printf(" ev %lx\n", (unsigned long) pevent); printf(" ev que %lx\n", (unsigned long) pevent->ev_que); - printf(" ev user %lx\n", (unsigned long) pevent->ev_que->evuser); + printf(" ev user %lx\n", (unsigned long) pevent->ev_que->evUser); printf("ring space %u\n", RNGSPACE(pevent->ev_que)); #endif printf( "task %x select %x pfield %lx behind by %ld\n", - pevent->ev_que->evuser->taskid, + pevent->ev_que->evUser->taskid, pevent->select, (unsigned long) pevent->paddr->pfield, pevent->npend); @@ -193,7 +193,7 @@ int db_event_list(char *name) */ struct event_user *db_init_events(void) { - struct event_user *evuser; + struct event_user *evUser; if (!dbevEventUserFreeList) { freeListInitPvt(&dbevEventUserFreeList, @@ -204,40 +204,40 @@ struct event_user *db_init_events(void) sizeof(struct event_que),8); } - evuser = (struct event_user *) + evUser = (struct event_user *) freeListCalloc(dbevEventUserFreeList); - if(!evuser) + if(!evUser) return NULL; - evuser->firstque.evuser = evuser; - FASTLOCKINIT(&(evuser->firstque.writelock)); - evuser->ppendsem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY); - if(!evuser->ppendsem){ - FASTLOCKFREE(&(evuser->firstque.writelock)); - freeListFree(dbevEventUserFreeList, evuser); + evUser->firstque.evUser = evUser; + FASTLOCKINIT(&(evUser->firstque.writelock)); + evUser->ppendsem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY); + if(!evUser->ppendsem){ + FASTLOCKFREE(&(evUser->firstque.writelock)); + freeListFree(dbevEventUserFreeList, evUser); return NULL; } - evuser->pflush_sem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY); - if(!evuser->pflush_sem){ - FASTLOCKFREE(&(evuser->firstque.writelock)); - semDelete(evuser->ppendsem); - freeListFree(dbevEventUserFreeList, evuser); + evUser->pflush_sem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY); + if(!evUser->pflush_sem){ + FASTLOCKFREE(&(evUser->firstque.writelock)); + semDelete(evUser->ppendsem); + freeListFree(dbevEventUserFreeList, evUser); return NULL; } - return evuser; + return evUser; } /* * DB_CLOSE_EVENTS() * - * evuser block and additional event queues + * evUser block and additional event queues * deallocated when the event thread terminates * itself * */ -int db_close_events(struct event_user *evuser) +int db_close_events(struct event_user *evUser) { /* * Exit not forced on event blocks for now - this is left to channel @@ -248,10 +248,10 @@ int db_close_events(struct event_user *evuser) * hazardous to the system's health. */ - evuser->pendexit = TRUE; + evUser->pendexit = TRUE; /* notify the waiting task */ - semGive(evuser->ppendsem); + semGive(evUser->ppendsem); return OK; @@ -279,7 +279,7 @@ unsigned db_sizeof_event_block(void) * */ int db_add_event( -struct event_user *evuser, +struct event_user *evUser, struct dbAddr *paddr, void (*user_sub)(), void *user_arg, @@ -307,7 +307,7 @@ struct event_block *pevent /* ptr to event blk (not required) */ /* find an event que block with enough quota */ /* otherwise add a new one to the list */ - ev_que = &evuser->firstque; + ev_que = &evUser->firstque; while (TRUE) { if(ev_que->quota < EVENTQUESIZE - EVENTENTRIES) break; @@ -316,7 +316,7 @@ struct event_block *pevent /* ptr to event blk (not required) */ freeListCalloc(dbevEventQueueFreeList); if(!tmp_que) return ERROR; - tmp_que->evuser = evuser; + tmp_que->evUser = evUser; FASTLOCKINIT(&(tmp_que->writelock)); ev_que->nextque = tmp_que; ev_que = tmp_que; @@ -457,7 +457,7 @@ int db_cancel_event(struct event_block *pevent) if(pevent->npend){ struct event_block flush_event; - pevu = pevent->ev_que->evuser; + pevu = pevent->ev_que->evUser; flush_event = *pevent; flush_event.user_sub = wake_cancel; @@ -517,14 +517,14 @@ db_field_log *pfl) * Specify a routine to be executed for event que overflow condition */ int db_add_overflow_event( -struct event_user *evuser, +struct event_user *evUser, OVRFFUNC overflow_sub, void *overflow_arg ) { - evuser->overflow_sub = overflow_sub; - evuser->overflow_arg = overflow_arg; + evUser->overflow_sub = overflow_sub; + evUser->overflow_arg = overflow_arg; return OK; } @@ -536,10 +536,10 @@ void *overflow_arg * waits for extra labor in progress to finish */ int db_flush_extra_labor_event( -struct event_user *evuser +struct event_user *evUser ) { - while(evuser->extra_labor){ + while(evUser->extra_labor){ taskDelay(sysClkRateGet()); } @@ -555,13 +555,13 @@ struct event_user *evuser * event task */ int db_add_extra_labor_event( -struct event_user *evuser, +struct event_user *evUser, EXTRALABORFUNC func, void *arg ) { - evuser->extralabor_sub = func; - evuser->extralabor_arg = arg; + evUser->extralabor_sub = func; + evUser->extralabor_arg = arg; return OK; } @@ -570,13 +570,13 @@ void *arg /* * DB_POST_EXTRA_LABOR() */ -int db_post_extra_labor(struct event_user *evuser) +int db_post_extra_labor(struct event_user *evUser) { int status; /* notify the event handler of extra labor */ - evuser->extra_labor = TRUE; - status = semGive(evuser->ppendsem); + evUser->extra_labor = TRUE; + status = semGive(evUser->ppendsem); assert(status == OK); return OK; @@ -653,7 +653,7 @@ LOCAL int db_post_single_event_private(struct event_block *event) ev_que = event->ev_que; /* - * evuser ring buffer must be locked for the multiple + * evUser ring buffer must be locked for the multiple * threads writing/reading it */ @@ -685,7 +685,7 @@ LOCAL int db_post_single_event_private(struct event_block *event) /* * this should never occur if this is bug free */ - ev_que->evuser->queovr++; + ev_que->evUser->queovr++; pLog = NULL; updateFlag = 0; } @@ -720,7 +720,7 @@ LOCAL int db_post_single_event_private(struct event_block *event) /* * notify the event handler */ - semGive(ev_que->evuser->ppendsem); + semGive(ev_que->evUser->ppendsem); } if (pLog) { @@ -737,19 +737,18 @@ LOCAL int db_post_single_event_private(struct event_block *event) * */ int db_start_events( -struct event_user *evuser, +struct event_user *evUser, char *taskname, /* defaulted if NULL */ -void (*init_func)(), +int (*init_func)(), int init_func_arg, int priority_offset ) { int status; int taskpri; - int event_task(); - /* only one ca_pend_event thread may be started for each evuser ! */ - while(!vxTas(&evuser->pendlck)) + /* only one ca_pend_event thread may be started for each evUser ! */ + while(!vxTas(&evUser->pendlck)) return ERROR; status = taskPriorityGet(taskIdSelf(), &taskpri); @@ -758,7 +757,7 @@ int priority_offset taskpri += priority_offset; - evuser->pendexit = FALSE; + evUser->pendexit = FALSE; if(!taskname) taskname = EVENT_PEND_NAME; @@ -769,14 +768,14 @@ int priority_offset EVENT_PEND_OPT, EVENT_PEND_STACK, event_task, - (int)evuser, + (int)evUser, (int)init_func, (int)init_func_arg, 0,0,0,0,0,0,0); if(status == ERROR) return ERROR; - evuser->taskid = status; + evUser->taskid = status; return OK; } @@ -788,33 +787,45 @@ int priority_offset * */ int event_task( -struct event_user *evuser, -void (*init_func)(), +struct event_user *evUser, +int (*init_func)(), int init_func_arg ) { int status; struct event_que *ev_que; + /* init hook */ + if (init_func) { + status = (*init_func)(init_func_arg); + if (status!=OK) { + logMsg("Unable to intialize the event system!\n", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL); + } + semGive(evUser->ppendsem); + evUser->pendexit = TRUE; + } + taskwdInsert((int)taskIdCurrent,NULL,NULL); - /* init hook */ - if(init_func) - (*init_func)(init_func_arg); - do{ - semTake(evuser->ppendsem, WAIT_FOREVER); + semTake(evUser->ppendsem, WAIT_FOREVER); /* * check to see if the caller has offloaded * labor to this task */ - if(evuser->extra_labor && evuser->extralabor_sub){ - evuser->extra_labor = FALSE; - (*evuser->extralabor_sub)(evuser->extralabor_arg); + if(evUser->extra_labor && evUser->extralabor_sub){ + evUser->extra_labor = FALSE; + (*evUser->extralabor_sub)(evUser->extralabor_arg); } - for( ev_que= &evuser->firstque; + for( ev_que= &evUser->firstque; ev_que; ev_que = ev_que->nextque){ @@ -825,27 +836,27 @@ int init_func_arg * The following do not introduce event latency since they * are not between notification and posting events. */ - if(evuser->queovr){ - if(evuser->overflow_sub) - (*evuser->overflow_sub)( - evuser->overflow_arg, - evuser->queovr); + if(evUser->queovr){ + if(evUser->overflow_sub) + (*evUser->overflow_sub)( + evUser->overflow_arg, + evUser->queovr); else logMsg("Events lost, discard count was %d\n", - evuser->queovr, + evUser->queovr, NULL, NULL, NULL, NULL, NULL); - evuser->queovr = 0; + evUser->queovr = 0; } - }while(!evuser->pendexit); + }while(!evUser->pendexit); - evuser->pendlck = FALSE; + evUser->pendlck = FALSE; - if(FASTLOCKFREE(&evuser->firstque.writelock)<0) + if(FASTLOCKFREE(&evUser->firstque.writelock)<0) logMsg("evtsk: fast lock free fail 1\n", NULL, NULL, @@ -858,7 +869,7 @@ int init_func_arg { struct event_que *nextque; - ev_que = evuser->firstque.nextque; + ev_que = evUser->firstque.nextque; while(ev_que){ nextque = ev_que->nextque; @@ -875,7 +886,7 @@ int init_func_arg } } - status = semDelete(evuser->ppendsem); + status = semDelete(evUser->ppendsem); if(status != OK){ logMsg("evtsk: sem delete fail at exit\n", NULL, @@ -885,7 +896,7 @@ int init_func_arg NULL, NULL); } - status = semDelete(evuser->pflush_sem); + status = semDelete(evUser->pflush_sem); if(status != OK){ logMsg("evtsk: flush sem delete fail at exit\n", NULL, @@ -896,7 +907,7 @@ int init_func_arg NULL); } - freeListFree(dbevEventUserFreeList, evuser); + freeListFree(dbevEventUserFreeList, evUser); taskwdRemove((int)taskIdCurrent); @@ -915,7 +926,7 @@ LOCAL int event_read(struct event_que *ev_que) db_field_log *pfl; /* - * evuser ring buffer must be locked for the multiple + * evUser ring buffer must be locked for the multiple * threads writing/reading it */ LOCKEVQUE(ev_que) diff --git a/src/db/dbEvent.h b/src/db/dbEvent.h index aaa6554af..ad4eeb205 100644 --- a/src/db/dbEvent.h +++ b/src/db/dbEvent.h @@ -81,7 +81,7 @@ struct event_que{ db_field_log valque[EVENTQUESIZE]; struct event_block *evque[EVENTQUESIZE]; struct event_que *nextque; /* in case que quota exceeded */ - struct event_user *evuser; /* event user parent struct */ + struct event_user *evUser; /* event user parent struct */ unsigned short putix; unsigned short getix; unsigned short quota; /* the number of assigned entries*/ @@ -108,16 +108,16 @@ struct event_user{ unsigned char extra_labor; /* if set call extra labor func */ }; -typedef void OVRFFUNC(void *overflow_arg, unsigned count); -typedef void EXTRALABORFUNC(void *extralabor_arg); +typedef void OVRFFUNC(void *overflow_arg, unsigned count); +typedef void EXTRALABORFUNC(void *extralabor_arg); int db_event_list(char *name); struct event_user *db_init_events(void); -int db_close_events(struct event_user *evuser); +int db_close_events(struct event_user *evUser); unsigned db_sizeof_event_block(void); int db_add_event( -struct event_user *evuser, +struct event_user *evUser, struct dbAddr *paddr, EVENTFUNC *user_sub, void *user_arg, @@ -128,23 +128,23 @@ struct event_block *pevent /* ptr to event blk (not required) */ int db_cancel_event(struct event_block *pevent); int db_add_overflow_event( -struct event_user *evuser, +struct event_user *evUser, OVRFFUNC *overflow_sub, void *overflow_arg ); int db_add_extra_labor_event( -struct event_user *evuser, +struct event_user *evUser, EXTRALABORFUNC *func, void *arg); int db_flush_extra_labor_event( -struct event_user *evuser +struct event_user *evUser ); int db_post_single_event(struct event_block *pevent); -int db_post_extra_labor(struct event_user *evuser); +int db_post_extra_labor(struct event_user *evUser); int db_post_events( void *precord, @@ -153,16 +153,16 @@ unsigned int select ); int db_start_events( -struct event_user *evuser, +struct event_user *evUser, char *taskname, /* defaulted if NULL */ -void (*init_func)(int), +int (*init_func)(int), int init_func_arg, int priority_offset ); int event_task( -struct event_user *evuser, -void (*init_func)(int), +struct event_user *evUser, +int (*init_func)(int), int init_func_arg );