X-Git-Url: http://plrg.eecs.uci.edu/git/?p=c11tester.git;a=blobdiff_plain;f=include%2Fmypthread.h;h=a781c401c01cd49d025dfd8fac079a6b93ae63b9;hp=ad92d24d833a9c438e45ec65cec3ef11b9abf60c;hb=7742256df627848c1c375f979f5369a45c92057b;hpb=b796e8fd2555099af225ee1c3f9194bc14f6fa15 diff --git a/include/mypthread.h b/include/mypthread.h index ad92d24d..a781c401 100644 --- a/include/mypthread.h +++ b/include/mypthread.h @@ -7,95 +7,43 @@ #include #include -#include #include +/* pthread mutex types + enum + { + PTHREAD_MUTEX_NORMAL + PTHREAD_MUTEX_RECURSIVE + PTHREAD_MUTEX_ERRORCHECK + PTHREAD_MUTEX_DEFAULT + };*/ + typedef void *(*pthread_start_t)(void *); struct pthread_params { - pthread_start_t func; - void *arg; + pthread_start_t func; + void *arg; }; -extern "C" { +struct pthread_attr +{ + /* Scheduler parameters and priority. */ + struct sched_param schedparam; + int schedpolicy; + /* Various flags like detachstate, scope, etc. */ + int flags; + /* Size of guard area. */ + size_t guardsize; + /* Stack handling. */ + void *stackaddr; + size_t stacksize; + /* Affinity map. */ + cpu_set_t *cpuset; + size_t cpusetsize; +}; -pthread_t pthread_self(void); +extern "C" { int user_main(int, char**); - -// --- not implemented yet --- - -int pthread_attr_destroy(pthread_attr_t *); -int pthread_attr_getdetachstate(const pthread_attr_t *, int *); -int pthread_attr_getguardsize(const pthread_attr_t *, size_t *); -int pthread_attr_getinheritsched(const pthread_attr_t *, int *); -int pthread_attr_getschedparam(const pthread_attr_t *, - struct sched_param *); -int pthread_attr_getschedpolicy(const pthread_attr_t *, int *); -int pthread_attr_getscope(const pthread_attr_t *, int *); -int pthread_attr_getstackaddr(const pthread_attr_t *, void **); -int pthread_attr_getstacksize(const pthread_attr_t *, size_t *); -int pthread_attr_init(pthread_attr_t *); -int pthread_attr_setdetachstate(pthread_attr_t *, int); -int pthread_attr_setguardsize(pthread_attr_t *, size_t); -int pthread_attr_setinheritsched(pthread_attr_t *, int); -int pthread_attr_setschedparam(pthread_attr_t *, - const struct sched_param *); -int pthread_attr_setschedpolicy(pthread_attr_t *, int); -int pthread_attr_setscope(pthread_attr_t *, int); -int pthread_attr_setstackaddr(pthread_attr_t *, void *); -int pthread_attr_setstacksize(pthread_attr_t *, size_t); -int pthread_cancel(pthread_t); -int pthread_cond_broadcast(pthread_cond_t *); -int pthread_cond_destroy(pthread_cond_t *); -int pthread_condattr_destroy(pthread_condattr_t *); -int pthread_condattr_getpshared(const pthread_condattr_t *, int *); -int pthread_condattr_init(pthread_condattr_t *); -int pthread_condattr_setpshared(pthread_condattr_t *, int); - -int pthread_detach(pthread_t); -int pthread_equal(pthread_t, pthread_t); -int pthread_getconcurrency(void); -int pthread_getschedparam(pthread_t, int *, struct sched_param *); -void *pthread_getspecific(pthread_key_t); -int pthread_key_create(pthread_key_t *, void (*)(void *)); -int pthread_key_delete(pthread_key_t); -int pthread_mutex_destroy(pthread_mutex_t *); -int pthread_mutex_getprioceiling(const pthread_mutex_t *, int *); -int pthread_mutex_setprioceiling(pthread_mutex_t *, int, int *); -int pthread_mutexattr_destroy(pthread_mutexattr_t *); -int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *, - int *); -int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *, int *); -int pthread_mutexattr_getpshared(const pthread_mutexattr_t *, int *); -int pthread_mutexattr_gettype(const pthread_mutexattr_t *, int *); -int pthread_mutexattr_init(pthread_mutexattr_t *); -int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); -int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); -int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); -int pthread_mutexattr_settype(pthread_mutexattr_t *, int); -int pthread_once(pthread_once_t *, void (*)(void)); -int pthread_rwlock_destroy(pthread_rwlock_t *); -int pthread_rwlock_init(pthread_rwlock_t *, - const pthread_rwlockattr_t *); -int pthread_rwlock_rdlock(pthread_rwlock_t *); -int pthread_rwlock_tryrdlock(pthread_rwlock_t *); -int pthread_rwlock_trywrlock(pthread_rwlock_t *); -int pthread_rwlock_unlock(pthread_rwlock_t *); -int pthread_rwlock_wrlock(pthread_rwlock_t *); -int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); -int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *, - int *); -int pthread_rwlockattr_init(pthread_rwlockattr_t *); -int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int); -int pthread_setcancelstate(int, int *); -int pthread_setcanceltype(int, int *); -int pthread_setconcurrency(int); -int pthread_setschedparam(pthread_t, int , - const struct sched_param *); -int pthread_setspecific(pthread_key_t, const void *); -void pthread_testcancel(void); - } -void check(); #endif