still getting to work

This commit is contained in:
Marty Kraimer
2000-01-28 20:51:54 +00:00
parent 6d04c9ba5a
commit 564b96136b
7 changed files with 203 additions and 177 deletions

View File

@@ -1,4 +1,4 @@
/* osi/os/vxWorks/osiInterrupt.c */
/* osi/os/vxWorks/osdInterrupt.c */
/* Author: Marty Kraimer Date: 28JAN2000 */
@@ -7,21 +7,4 @@ This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <vxWorks.h>
#include <intLib.h>
#include <logLib.h>
#include "osiInterrupt.h"
int interruptLock() {return(intLock();}
void interruptUnlock(int key) {intUnlock(key;}
int interruptIsInterruptContext() {return(intContext());}
void interruptContextMessage(const char *message)
{
logMsg((char *)message,0,0,0,0,0,0);
}
static void dummy() {}

View File

@@ -0,0 +1,24 @@
/* osi/os/vxWorks/osdInterrupt.h */
/* Author: Marty Kraimer Date: 28JAN2000 */
/********************COPYRIGHT NOTIFICATION**********************************
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <vxWorks.h>
#include <intLib.h>
#include <logLib.h>
INLINE int interruptLock() {return(intLock());}
INLINE void interruptUnlock(int key) {intUnlock(key);}
INLINE int interruptIsInterruptContext() {return(intContext());}
INLINE void interruptContextMessage(const char *message)
{
logMsg((char *)message,0,0,0,0,0,0);
}

View File

@@ -1,4 +1,4 @@
/* osiRing.c */
/* osdRing.c */
/* Author: Marty Kraimer Date: 09SEP99 */
@@ -7,56 +7,4 @@ This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <vxWorks.h>
#include <rngLib.h>
ringId ringCreate(int nbytes)
{
return((ringId)rngCreate(nbytes));
}
void ringDelete(ringId id)
{
rngDelete((RING_ID)id);
}
int ringGet(ringId id, char *value,int nbytes)
{
return(rngBufGet((RING_ID)id,value,nbytes);
}
int ringPut(ringId id, char *value,int nbytes)
{
return(rngBufPut((RING_ID)id,value,nbytes));
}
void ringFlush(ringId id)
{
ringFlush((RING_ID)id);
}
int ringFreeBytes(ringId id)
{
return(rngFreeBytes((RING_ID)id));
}
int ringUsedBytes(ringId id)
{
return(rngNBytes((RING_ID)id));
}
int ringSize(ringId id)
{
return((rngFreeBytes((RING_ID)id) + rngNBytes((RING_ID)id)));
}
int ringIsEmpty(ringId id)
{
return(rngIsEmpty((RING_ID)id));
}
int ringIsFull(ringId id)
{
return(rngIsFull((RING_ID)id));
}
static void dummy(){}

View File

@@ -0,0 +1,62 @@
/* osdRing.h */
/* Author: Marty Kraimer Date: 09SEP99 */
/********************COPYRIGHT NOTIFICATION**********************************
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <vxWorks.h>
#include <rngLib.h>
INLINE ringId ringCreate(int nbytes)
{
return((ringId)rngCreate(nbytes));
}
INLINE void ringDelete(ringId id)
{
rngDelete((RING_ID)id);
}
INLINE int ringGet(ringId id, char *value,int nbytes)
{
return(rngBufGet((RING_ID)id,value,nbytes);
}
INLINE int ringPut(ringId id, char *value,int nbytes)
{
return(rngBufPut((RING_ID)id,value,nbytes));
}
INLINE void ringFlush(ringId id)
{
ringFlush((RING_ID)id);
}
INLINE int ringFreeBytes(ringId id)
{
return(rngFreeBytes((RING_ID)id));
}
INLINE int ringUsedBytes(ringId id)
{
return(rngNBytes((RING_ID)id));
}
INLINE int ringSize(ringId id)
{
return((rngFreeBytes((RING_ID)id) + rngNBytes((RING_ID)id)));
}
INLINE int ringIsEmpty(ringId id)
{
return(rngIsEmpty((RING_ID)id));
}
INLINE int ringIsFull(ringId id)
{
return(rngIsFull((RING_ID)id));
}

View File

@@ -1,4 +1,4 @@
/* os/vxWorks/osiSem.c */
/* os/vxWorks/osdSem.c */
/* Author: Marty Kraimer Date: 25AUG99 */
@@ -8,106 +8,4 @@ described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <vxWorks.h>
#include <semLib.h>
#include <time.h>
#include <objLib.h>
#include <sysLib.h>
#include "osiSem.h"
#include "cantProceed.h"
semBinaryId semBinaryCreate(int initialState)
{
return((semBinaryId)semBCreate(SEM_Q_FIFO,(semEmpty ? SEM_EMPTY : SEM_FULL)));
}
void semBinaryDestroy(semBinaryId id)
{
semDelete((SEM_ID)id);
}
void semBinaryGive(semBinaryId id)
{
semGive((SEM_ID)id);
}
semTakeStatus semBinaryTake(semBinaryId id)
{
int status;
status = semTake((SEM_ID)id,WAIT_FOREVER);
return((status==OK ? semTakeOK : semTakeError));
}
semTakeStatus semBinaryTakeTimeout(
semBinaryId id, double timeOut)
{
int status;
int ticks;
ticks = (int)(timeOut * (double)sysClkRateGet());
status = semTake((SEM_ID)id,ticks);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_TIMEOUT) return(semTakeTimeout);
return(semTakeError);
}
semTakeStatus semBinaryTakeNoWait(semBinaryId id)
{
int status;
status = semTake((SEM_ID)id,NO_WAIT);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_UNAVAILABLE) return(semTakeTimeout);
return(semTakeError);
}
void semBinaryShow(semBinaryId id)
{
semShow((SEM_ID)id,1);
}
semMutexId semMutexCreate(void)
{
return((semMutexId)
semMCreate(SEM_DELETE_SAFE|SEM_INVERSION_SAFE|SEM_Q_PRIORITY));
}
void semMutexDestroy(semMutexId id)
{
semDelete((SEM_ID)id);
}
void semMutexGive(semMutexId id)
{
semGive((SEM_ID)id);
}
semTakeStatus semMutexTake(semMutexId id)
{
int status;
status = semTake((SEM_ID)id,WAIT_FOREVER);
return((status==OK ? semTakeOK : semTakeError));
}
semTakeStatus semMutexTakeTimeout(
semMutexId id, double timeOut)
{
int status;
status = semTake((SEM_ID)id,NO_WAIT);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_UNAVAILABLE) return(semTakeTimeout);
return(semTakeError);
}
semTakeStatus semMutexTakeNoWait(semMutexId id);
{
int status;
status = semTake((SEM_ID)id,NO_WAIT);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_UNAVAILABLE) return(semTakeTimeout);
return(semTakeError);
}
void semMutexShow(semMutexId id);
{
semShow((SEM_ID)id,1);
}
static void dummy(){}

View File

@@ -0,0 +1,110 @@
/* os/vxWorks/osdSem.h */
/* Author: Marty Kraimer Date: 25AUG99 */
/********************COPYRIGHT NOTIFICATION**********************************
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
****************************************************************************/
#include <vxWorks.h>
#include <semLib.h>
#include <time.h>
#include <objLib.h>
#include <sysLib.h>
INLINE semBinaryId semBinaryCreate(int initialState)
{
return((semBinaryId)semBCreate(SEM_Q_FIFO,(semEmpty ? SEM_EMPTY : SEM_FULL)));
}
INLINE void semBinaryDestroy(semBinaryId id)
{
semDelete((SEM_ID)id);
}
INLINE void semBinaryGive(semBinaryId id)
{
semGive((SEM_ID)id);
}
INLINE semTakeStatus semBinaryTake(semBinaryId id)
{
int status;
status = semTake((SEM_ID)id,WAIT_FOREVER);
return((status==OK ? semTakeOK : semTakeError));
}
INLINE semTakeStatus semBinaryTakeTimeout(
semBinaryId id, double timeOut)
{
int status;
int ticks;
ticks = (int)(timeOut * (double)sysClkRateGet());
status = semTake((SEM_ID)id,ticks);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_TIMEOUT) return(semTakeTimeout);
return(semTakeError);
}
INLINE semTakeStatus semBinaryTakeNoWait(semBinaryId id)
{
int status;
status = semTake((SEM_ID)id,NO_WAIT);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_UNAVAILABLE) return(semTakeTimeout);
return(semTakeError);
}
INLINE void semBinaryShow(semBinaryId id)
{
semShow((SEM_ID)id,1);
}
INLINE semMutexId semMutexCreate(void)
{
return((semMutexId)
semMCreate(SEM_DELETE_SAFE|SEM_INVERSION_SAFE|SEM_Q_PRIORITY));
}
INLINE void semMutexDestroy(semMutexId id)
{
semDelete((SEM_ID)id);
}
INLINE void semMutexGive(semMutexId id)
{
semGive((SEM_ID)id);
}
INLINE semTakeStatus semMutexTake(semMutexId id)
{
int status;
status = semTake((SEM_ID)id,WAIT_FOREVER);
return((status==OK ? semTakeOK : semTakeError));
}
INLINE semTakeStatus semMutexTakeTimeout(
semMutexId id, double timeOut)
{
int status;
status = semTake((SEM_ID)id,NO_WAIT);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_UNAVAILABLE) return(semTakeTimeout);
return(semTakeError);
}
INLINE semTakeStatus semMutexTakeNoWait(semMutexId id);
{
int status;
status = semTake((SEM_ID)id,NO_WAIT);
if(status==OK) return(semTakeOK);
if(errno==S_objLib_OBJ_UNAVAILABLE) return(semTakeTimeout);
return(semTakeError);
}
INLINE void semMutexShow(semMutexId id);
{
semShow((SEM_ID)id,1);
}

View File

@@ -0,0 +1 @@
/* not needed */