/shark/trunk/include/fs/mutex.h |
---|
25,11 → 25,11 |
***************************************/ |
/* |
* CVS : $Id: mutex.h,v 1.2 2003-03-13 13:37:58 pj Exp $ |
* CVS : $Id: mutex.h,v 1.3 2006-03-09 16:29:17 tullio Exp $ |
* |
* File: $File$ |
* Revision: $Revision: 1.2 $ |
* Last update: $Date: 2003-03-13 13:37:58 $ |
* Revision: $Revision: 1.3 $ |
* Last update: $Date: 2006-03-09 16:29:17 $ |
*/ |
/* |
84,34 → 84,7 |
/*+ Signal a semaphore +*/ |
#define __mutex_unlock(ptr) (internal_sem_post(ptr)) |
#if 0 |
/* start old implementation */ |
#include <kernel/model.h> |
#include <kernel/func.h> |
#include <fs/assert.h> |
/*+ a mutex object +*/ |
typedef mutex_t __mutex_t; |
/* |
The following macros require a pointer to a mutex object and |
return nothing. |
*/ |
/* Initialize a mutex object +*/ |
#define __mutex_init(ptr,attr) _assert(mutex_init(ptr,attr)==0) |
/*+ Lock a mutex object +*/ |
#define __mutex_lock(ptr) _assert(mutex_lock(ptr)==0) |
/*+ Try to lock a mutex (return 0 on success locking) +*/ |
#define __mutex_trylock(ptr) (mutex_trylock((ptr))) |
/*+ Unlock a mutex +*/ |
#define __mutex_unlock(ptr) _assert(mutex_unlock(ptr)==0) |
/* end old implementation */ |
#endif |
/* |
* fast mutex |
*/ |
123,64 → 96,6 |
#define __fastmutex_lock(ptr) *ptr=kern_fsave() |
#define __fastmutex_unlock(ptr) kern_frestore(*ptr) |
#if 0 |
/* Hartik 3.x implemantation */ |
/* |
#include <hartik/const.h> |
typedef struct { |
QUEUE queue; |
int value; |
} __mutex_t; |
void __mutex_init(__mytex_t *); |
void __mutex_lock(__mytex_t *); |
int __mutex_trylock(__mytex_t *); |
void __mutex_unlock(__mytex_t *); |
*/ |
/* |
* temporary hack |
*/ |
#include <h/sys/kern.h> |
#include <h/sys/const.h> |
/*+ a mutex object +*/ |
typedef SEM __mutex_t; |
/* |
The following macros require a pointer to a mutex object and |
return nothing. |
*/ |
#ifdef FSCHECKMUTEX |
#include <fs/assert.h> |
#define checkmutex(x) assert((x)>=0&&(x)<MAX_SEM) |
#else |
#define checkmutex(x) |
#endif |
/* Initialize a mutex object +*/ |
#define __mutex_init(ptr) { *(ptr)=sem_create(1); checkmutex(*ptr); } |
/*+ Lock a mutex object +*/ |
#define __mutex_lock(ptr) { checkmutex(*ptr); sem_wait(*(ptr),BLOCK); } |
/*+ Try to lock a mutex (return 0 on success locking) +*/ |
#define __mutex_trylock(ptr) { checkmutex(*ptr); sem_wait(*(ptr),NON_BLOCK); } |
/*+ Unlock a mutex +*/ |
#define __mutex_unlock(ptr) { checkmutex(*ptr); sem_signal(*(ptr)); } |
#endif |
__END_DECLS |
#endif |
/shark/trunk/include/fs/semaph.h |
---|
25,11 → 25,11 |
***************************************/ |
/* |
* CVS : $Id: semaph.h,v 1.2 2003-03-13 13:37:58 pj Exp $ |
* CVS : $Id: semaph.h,v 1.3 2006-03-09 16:29:17 tullio Exp $ |
* |
* File: $File$ |
* Revision: $Revision: 1.2 $ |
* Last update: $Date: 2003-03-13 13:37:58 $ |
* Revision: $Revision: 1.3 $ |
* Last update: $Date: 2006-03-09 16:29:17 $ |
*/ |
/* |
80,63 → 80,6 |
/*+ Signal a semaphore +*/ |
#define __sem_signal(ptr) (internal_sem_post(ptr)) |
#if 0 |
/* |
#include <hartik/const.h> |
typedef struct { |
QUEUE queue; |
int value; |
} __semaph_t; |
void __semaph_init(__semaph_t *, int val); |
void __semaph_lock(__semaph_t *); |
int __semaph_trylock(__semaph_t *); |
void __semaph_unlock(__semaph_t *); |
*/ |
/* |
* temporary hack |
*/ |
#include <h/sys/kern.h> |
#include <h/sys/const.h> |
#ifdef FSCHECKSEMAPH |
#include <fs/assert.h> |
#define checksemaph(x) _assert((x)>=0&&(x)<MAX_SEM) |
#else |
#define checksemaph(x) |
#endif |
/*+ a semaphore object +*/ |
typedef SEM __sem_t; |
/* |
The following macros can be used to synchronize events; all |
require a pointer to a semaphore object and return nothing; |
a semaphore can have "val" resource free. |
*/ |
/*+ Initialize a semaphore (to integer val) +*/ |
#define __sem_init(ptr,val) {*(ptr)=sem_create(val); checksemaph(*ptr);} |
/*+ Wait for a semaphore +*/ |
#define __sem_wait(ptr) {checksemaph(*ptr); sem_wait(*(ptr),BLOCK);} |
/*+ Try to wait for a semaphore (return 0 on success) +*/ |
#define __sem_trywait(ptr) (!sem_wait(*(ptr),NON_BLOCK)) |
/*+ Signal a semaphore +*/ |
#define __sem_signal(ptr) {checksemaph(*ptr); sem_signal(*(ptr));} |
#endif |
__END_DECLS |
#endif |
/shark/trunk/include/fs/const.h |
---|
38,11 → 38,11 |
*/ |
/* |
* CVS : $Id: const.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $ |
* CVS : $Id: const.h,v 1.2 2006-03-09 16:29:17 tullio Exp $ |
* |
* File: $File$ |
* Revision: $Revision: 1.1.1.1 $ |
* Last update: $Date: 2002-03-29 14:12:51 $ |
* Revision: $Revision: 1.2 $ |
* Last update: $Date: 2006-03-09 16:29:17 $ |
*/ |
#ifndef __FS_CONST_H |
52,7 → 52,5 |
#define NULL (0l) |
#endif |
/*#include <h/sys/const.h>*/ |
#endif |
/shark/trunk/libc/libio/wrappers.c |
---|
38,11 → 38,11 |
*/ |
/* |
* CVS : $Id: wrappers.c,v 1.1.1.1 2002-03-29 14:12:53 pj Exp $ |
* CVS : $Id: wrappers.c,v 1.2 2006-03-09 16:30:05 tullio Exp $ |
* |
* File: $File$ |
* Revision: $Revision: 1.1.1.1 $ |
* Last update: $Date: 2002-03-29 14:12:53 $ |
* Revision: $Revision: 1.2 $ |
* Last update: $Date: 2006-03-09 16:30:05 $ |
*/ |
#include <kernel/model.h> |
161,8 → 161,6 |
extern int k_stat(char *path, struct stat *buf); |
//#include <h/sys/kern.h> |
int __xstat(int version, char *path, struct stat *buf) |
{ |
int res; |