#ifndef _SPINLOCK_H
#define _SPINLOCK_H
#include <ubixos/types.h>
#define SPIN_LOCK_INITIALIZER 0
typedef struct _spinLock spinLock_t;
struct _spinLock
{
spinLock_t *First;
spinLock_t *Last;
spinLock_t *Next;
spinLock_t *Previous;
uInt8 *Locked;
uInt32 *ID;
uInt8 *Type;
};
void spinLockInit(spinLock_t *);
void spinUnlock(spinLock_t *);
int spinTryLock(spinLock_t *);
void spinLock(spinLock_t *);
void spinLock_scheduler(spinLock_t *); /* Only use this spinlock in the sched. */
int spinLockLocked(spinLock_t *);
#endif
/***
$Log$
Revision 1.6 2004/09/11 13:01:05 apwillia
Make spinlock lock function sched_yield. Add spinlockLock_scheduler for use in smp-scheduler (avoids recursive call to sched).
Revision 1.5 2004/07/20 20:25:57 reddawg
Works perfectly here
Revision 1.4 2004/07/20 20:20:19 reddawg
spinlock: made them non inline functions I think this actually fixed the problem
Revision 1.3 2004/05/21 12:42:32 reddawg
Cleaned Up
END
***/