Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1030 → Rev 1031

/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;