fixed warnings

This commit is contained in:
Jeff Hill
1997-04-23 17:12:19 +00:00
parent 33b940562e
commit 697200e942
2 changed files with 97 additions and 86 deletions
+84 -73
View File
@@ -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)
+13 -13
View File
@@ -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
);