head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.50 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.48 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.46 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.44 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.42 pkgsrc-2009Q4-base:1.2 pkgsrc-2008Q4:1.2.0.40 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.38 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.36 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.34 pkgsrc-2008Q2-base:1.2 pkgsrc-2008Q1:1.2.0.32 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.30 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.28 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.26 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.24 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.22 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.20 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.18 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.16 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.14 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.12 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.10 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.8 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.2.0.6 pkgsrc-2004Q4-base:1.2 pkgsrc-2004Q3:1.2.0.4 pkgsrc-2004Q3-base:1.2 pkgsrc-2004Q2:1.2.0.2 pkgsrc-2004Q2-base:1.2 pkgsrc-2004Q1:1.1.0.12 pkgsrc-2004Q1-base:1.1 pkgsrc-2003Q4:1.1.0.10 pkgsrc-2003Q4-base:1.1 netbsd-1-6-1:1.1.0.6 netbsd-1-6-1-base:1.1 netbsd-1-6:1.1.0.8 netbsd-1-6-RELEASE-base:1.1 pkgviews:1.1.0.4 pkgviews-base:1.1 buildlink2:1.1.0.2 buildlink2-base:1.1 netbsd-1-5-PATCH003:1.1 netbsd-1-5-PATCH001:1.1; locks; strict; comment @# @; 1.2 date 2004.06.01.21.39.20; author kristerw; state dead; branches; next 1.1; 1.1 date 2000.12.28.03.56.53; author wiz; state Exp; branches; next ; desc @@ 1.2 log @Remove obsolete packages, per discussion on tech-pkg. @ text @$NetBSD: patch-ad,v 1.1 2000/12/28 03:56:53 wiz Exp $ --- machdep/engine-alpha-netbsd-1.3.h.orig Fri Nov 12 16:02:40 1999 +++ machdep/engine-alpha-netbsd-1.3.h @@@@ -10,7 +10,15 @@@@ #include #include #include -#include /* for _NSIG */ +#include /* for _NSIG */ +#include + +#include +#include +#include +#include + +#include /* The first machine dependent functions are the SEMAPHORES needing the test and set instruction. @@@@ -21,20 +29,20 @@@@ #define SEMAPHORE_SET 1 #if 0 -#define SEMAPHORE_TEST_AND_SET(lock) \ -({ int *_sem_lock = (lock), locked, old; \ - asm ("mb" : : : "memory"); \ - do { asm ("ldl_l %0,%1" : "=r" (old) : "m" (*_sem_lock)); \ - /* ?? if (old != SEMAPHORE_CLEAR) break; */ \ - asm ("stl_c %0,%1" : "=r" (locked), "=m" (*_sem_lock) \ - : "0" (SEMAPHORE_SET)); \ - } while (!locked); \ - asm ("mb" : : : "memory"); \ +#define SEMAPHORE_TEST_AND_SET(lock) \ +({ int *_sem_lock = (lock), locked, old; \ + asm ("mb" : : : "memory"); \ + do { asm ("ldl_l %0,%1" : "=r" (old) : "m" (*_sem_lock)); \ + /* ?? if (old != SEMAPHORE_CLEAR) break; */ \ + asm ("stl_c %0,%1" : "=r" (locked), "=m" (*_sem_lock) \ + : "0" (SEMAPHORE_SET)); \ + } while (!locked); \ + asm ("mb" : : : "memory"); \ old == SEMAPHORE_CLEAR; }) #define SEMAPHORE_RESET(lock) \ -({ int *_sem_lock = (lock); \ - *_sem_lock = SEMAPHORE_CLEAR; \ +({ int *_sem_lock = (lock); \ + *_sem_lock = SEMAPHORE_CLEAR; \ asm ("mb" : : : "memory"); }) #endif @@@@ -46,19 +54,19 @@@@ /* * sigset_t macros */ -#define SIG_ANY(sig) (sig) -#define SIGMAX (_NSIG-1) +#define SIG_ANY(sig) (sig) +#define SIGMAX (_NSIG-1) /* * New Strutures */ struct machdep_pthread { - void *(*start_routine)(void *); - void *start_argument; - void *machdep_stack; - struct itimerval machdep_timer; - unsigned long machdep_istate[11]; - unsigned long machdep_fstate[9]; + void *(*start_routine)(void *); + void *start_argument; + void *machdep_stack; + struct itimerval machdep_timer; + unsigned long machdep_istate[11]; + unsigned long machdep_fstate[9]; }; /* @@@@ -66,18 +74,18 @@@@ * For initial thread only. */ #define MACHDEP_PTHREAD_INIT \ - { NULL, NULL, NULL, { { 0, 0 }, { 0, 100000 } }, 0 } + { NULL, NULL, NULL, { { 0, 0 }, { 0, 100000 } }, { 0 }, { 0 } } /* * Minimum stack size */ -#define PTHREAD_STACK_MIN 2048 +#define PTHREAD_STACK_MIN 2048 /* * Some fd flag defines that are necessary to distinguish between posix * behavior and bsd4.3 behavior. */ -#define __FD_NONBLOCK O_NONBLOCK +#define __FD_NONBLOCK O_NONBLOCK /* * New functions @@@@ -91,21 +99,112 @@@@ #define __machdep_stack_set(x, y) (x)->machdep_stack = y #define __machdep_stack_repl(x, y) \ { \ - if (stack = __machdep_stack_get(x)) { \ + if ((stack = __machdep_stack_get(x))) { \ __machdep_stack_free(stack); \ } \ __machdep_stack_set(x, y); \ } -void * __machdep_stack_alloc(size_t); -void __machdep_stack_free(void *); - int machdep_save_state(void); +int safe_store (int *loc, int nw); int __machdep_save_int_state(unsigned long *); void __machdep_restore_int_state(unsigned long *); void __machdep_save_fp_state(unsigned long *); void __machdep_restore_fp_state(unsigned long *); + +void *machdep_pthread_cleanup(struct machdep_pthread *machdep_pthread); +void machdep_pthread_start(void); + +/* ========================================================================== + * __machdep_stack_free() + */ +inline static +void __machdep_stack_free(void * stack) +{ + free(stack); +} + +/* ========================================================================== + * __machdep_stack_alloc() + */ +inline static +void * __machdep_stack_alloc(size_t size) +{ + return(malloc(size)); +} + +/* ========================================================================== + * machdep_sys_creat() + */ +static inline int +machdep_sys_creat(char * path, int mode) +{ + return(machdep_sys_open(path, O_WRONLY | O_CREAT | O_TRUNC, mode)); +} + +/* ========================================================================== + * machdep_sys_wait3() + */ +static inline int +machdep_sys_wait3(int * b, int c, struct rusage *d) +{ + return(machdep_sys_wait4(0, b, c, d)); +} + +/* ========================================================================== + * machdep_sys_waitpid() + */ +static inline int +machdep_sys_waitpid(int a, int * b, int c) +{ + return(machdep_sys_wait4(a, b, c, NULL)); +} + +/* ========================================================================== + * machdep_sys_getdtablesize() + */ +static inline int +machdep_sys_getdtablesize(void) +{ + return(sysconf(_SC_OPEN_MAX)); +} + +/* ========================================================================== + * machdep_sys_lseek() + */ +static inline +off_t machdep_sys_lseek(int fd, off_t offset, int whence) +{ + return(__syscall((quad_t)SYS_lseek, fd, 0, offset, whence)); +} + +static inline +int machdep_sys_ftruncate( int fd, off_t length) +{ + quad_t q; + int rv; + + q = __syscall((quad_t)SYS_ftruncate, fd,0, length); + if( /* LINTED constant */ sizeof( quad_t ) == sizeof( register_t ) || + /* LINTED constant */ BYTE_ORDER == LITTLE_ENDIAN ) + rv = (int)q; + else + rv = (int)((u_quad_t)q >> 32); + + return rv; +} + + +/* ========================================================================== + * machdep_sys_getdirentries() + */ +static inline int +machdep_sys_getdirentries(int fd, char * buf, int len, int * seek) +{ + return(machdep_sys_getdents(fd, buf, len)); +} + #endif @ 1.1 log @Add alpha support to unproven-pthreads. By Olaf Seibert , posted on port-alpha on 2000/08/08. Compiles fine, otherwise untested. @ text @d1 1 a1 1 $NetBSD$ @