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.21; author kristerw; state dead; branches; next 1.1; 1.1 date 2000.12.28.03.56.54; author wiz; state Exp; branches; next ; desc @@ 1.2 log @Remove obsolete packages, per discussion on tech-pkg. @ text @$NetBSD: patch-ag,v 1.1 2000/12/28 03:56:54 wiz Exp $ --- machdep/engine-alpha-netbsd-1.3.c.orig Fri Dec 10 13:40:41 1999 +++ machdep/engine-alpha-netbsd-1.3.c @@@@ -3,17 +3,17 @@@@ * * Description : Machine dependent functions for NetBSD/Alpha 1.1(+) * - * 1.00 93/08/04 proven + * 1.00 93/08/04 proven * -Started coding this file. * - * 95/04/22 cgd - * -Modified to make it go with NetBSD/Alpha + * 95/04/22 cgd + * -Modified to make it go with NetBSD/Alpha */ #ifndef lint static const char rcsid[] = "engine-alpha-osf1.c,v 1.4.4.1 1995/12/13 05:41:37 proven Exp"; #endif - + #include #include #include @@@@ -23,77 +23,24 @@@@ #include /* ========================================================================== - * machdep_save_state() - */ -int machdep_save_state(void) -{ - return __machdep_save_int_state(pthread_run->machdep_data.machdep_istate); -} - -void machdep_restore_state(void) -{ - __machdep_restore_int_state(pthread_run->machdep_data.machdep_istate); -} - -void machdep_save_float_state (void) -{ - __machdep_save_fp_state(pthread_run->machdep_data.machdep_fstate); -} - -void machdep_restore_float_state (void) -{ - __machdep_restore_fp_state(pthread_run->machdep_data.machdep_fstate); -} - -/* ========================================================================== - * machdep_set_thread_timer() - */ -void machdep_set_thread_timer(struct machdep_pthread *machdep_pthread) -{ - if (setitimer(ITIMER_VIRTUAL, &(machdep_pthread->machdep_timer), NULL)) { - PANIC("setitimer failed"); - } -} - -/* ========================================================================== - * machdep_unset_thread_timer() - */ -void machdep_unset_thread_timer(struct machdep_pthread *machdep_pthread) -{ - struct itimerval zeroval = { { 0, 0 }, { 0, 0} }; - - if (setitimer(ITIMER_VIRTUAL, &zeroval, NULL)) { - PANIC("setitimer failed"); - } -} - -/* ========================================================================== - * machdep_pthread_cleanup() - */ -void *machdep_pthread_cleanup(struct machdep_pthread *machdep_pthread) -{ - return(machdep_pthread->machdep_stack); -} - -/* ========================================================================== * machdep_pthread_start() */ void machdep_pthread_start(void) { - context_switch_done(); - pthread_sched_resume (); + context_switch_done(); + pthread_sched_resume (); - /* XXXMLG - * This is EXTREMELY bogus, but it seems that this function is called - * with the pthread kernel locked. If this happens, __errno() will - * return the wrong address until after the first context switch. - * - * Clearly there is a leak of pthread_kernel somewhere, but until - * it is found, we force a context switch here, just before calling - * the thread start routine. When we return from pthread_yield - * the kernel will be unlocked. - */ - pthread_yield(); + /* XXXMLG + * This is EXTREMELY bogus, but it seems that this function is called + * with the pthread kernel locked. If this happens, __errno() will + * return the wrong address until after the first context switch. + * + * Clearly there is a leak of pthread_kernel somewhere, but until + * it is found, we force a context switch here, just before calling + * the thread start routine. When we return from pthread_yield + * the kernel will be unlocked. + */ + pthread_yield(); /* Run current threads start routine with argument */ pthread_exit(pthread_run->machdep_data.start_routine @@@@ -104,28 +51,10 @@@@ } /* ========================================================================== - * __machdep_stack_free() - */ -void __machdep_stack_free(void * stack) -{ - free(stack); -} - -/* ========================================================================== - * __machdep_stack_alloc() - */ -void * __machdep_stack_alloc(size_t size) -{ - void * stack; - - return(malloc(size)); -} - -/* ========================================================================== * __machdep_pthread_create() */ void __machdep_pthread_create(struct machdep_pthread *machdep_pthread, - void *(* start_routine)(), void *start_argument, + void *(* start_routine)(void *), void *start_argument, long stack_size, long nsec, long flags) { machdep_pthread->start_routine = start_routine; @@@@ -151,66 +80,68 @@@@ } } -int safe_store (loc, new) - int *loc; - int new; +/* ========================================================================== + * machdep_save_state() + */ +int machdep_save_state(void) { - int locked, old; - asm ("mb" : : : "memory"); - do { - asm ("ldl_l %0,%1" : "=r" (old) : "m" (*loc)); - asm ("stl_c %0,%1" : "=r" (locked), "=m" (*loc) : "0" (new)); - } while (!locked); - asm ("mb" : : : "memory"); - return old; + return __machdep_save_int_state(pthread_run->machdep_data.machdep_istate); } -/* ========================================================================== - * machdep_sys_creat() - */ -machdep_sys_creat(char * path, int mode) -{ - return(machdep_sys_open(path, O_WRONLY | O_CREAT | O_TRUNC, mode)); -} +void machdep_restore_state(void) +{ + __machdep_restore_int_state(pthread_run->machdep_data.machdep_istate); +} -/* ========================================================================== - * machdep_sys_wait3() - */ -machdep_sys_wait3(int * b, int c, int * d) -{ - return(machdep_sys_wait4(0, b, c, d)); -} - -/* ========================================================================== - * machdep_sys_waitpid() - */ -machdep_sys_waitpid(int a, int * b, int c) +void machdep_save_float_state (struct pthread *pthread) +{ + __machdep_save_fp_state(pthread->machdep_data.machdep_fstate); +} + +void machdep_restore_float_state (void) { - return(machdep_sys_wait4(a, b, c, NULL)); + __machdep_restore_fp_state(pthread_run->machdep_data.machdep_fstate); } /* ========================================================================== - * machdep_sys_getdtablesize() + * machdep_set_thread_timer() */ -machdep_sys_getdtablesize() +void machdep_set_thread_timer(struct machdep_pthread *machdep_pthread) { - return(sysconf(_SC_OPEN_MAX)); + if (setitimer(ITIMER_VIRTUAL, &(machdep_pthread->machdep_timer), NULL)) { + PANIC("setitimer failed"); + } } /* ========================================================================== - * machdep_sys_lseek() + * machdep_unset_thread_timer() */ -off_t machdep_sys_lseek(int fd, off_t offset, int whence) +void machdep_unset_thread_timer(struct machdep_pthread *machdep_pthread) { - extern off_t __syscall(); + struct itimerval zeroval = { { 0, 0 }, { 0, 0} }; - return(__syscall((quad_t)SYS_lseek, fd, 0, offset, whence)); + if (setitimer(ITIMER_VIRTUAL, &zeroval, NULL)) { + PANIC("setitimer failed"); + } } /* ========================================================================== - * machdep_sys_getdirentries() + * machdep_pthread_cleanup() */ -machdep_sys_getdirentries(int fd, char * buf, int len, int * seek) +void *machdep_pthread_cleanup(struct machdep_pthread *machdep_pthread) { - return(machdep_sys_getdents(fd, buf, len)); -} + return(machdep_pthread->machdep_stack); +} + +int safe_store (int *loc, int new) +{ + int locked, old; + asm ("mb" : : : "memory"); + do { + asm ("ldl_l %0,%1" : "=r" (old) : "m" (*loc)); + asm ("stl_c %0,%1" : "=r" (locked), "=m" (*loc) : "0" (new)); + } while (!locked); + asm ("mb" : : : "memory"); + return old; +} + @ 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$ @