aboutsummaryrefslogtreecommitdiff
path: root/lib/libpthread/arch/i386/include
Commit message (Collapse)AuthorAgeFilesLines
* Repo copy libpthreads to libkse.David E. O'Brien2007-10-092-315/+0
| | | | | | | | | This introduces the WITHOUT_LIBKSE nob, and changes WITHOUT_LIBPTHREADS to mean with neither threading libs. Approved by: re(kensmith) Notes: svn path=/head/; revision=172492
* Clean out the leftovers from the i386_set_gsbase() TLS conversion.Peter Wemm2005-06-291-12/+1
| | | | | | | | | | | Like on libthr, there is an i386_set_gsbase() stub implementation here to avoid libc.so.5 issues. This should likely be a weak symbol and I expect this will be fixed soon. Approved by: re Notes: svn path=/head/; revision=147673
* Remove the special _amd64_set_gsbase() code for #ifdef COMPAT_32BIT, nowPeter Wemm2005-04-261-4/+0
| | | | | | | | that the amd64 kernel implements i386_get/set_gsbase(). All the rest of the ldt backwards compat code should go away soon. Notes: svn path=/head/; revision=145569
* Use the i386_set_gsbase() syscall if it is implemented in the kernel.Peter Wemm2005-04-141-2/+8
| | | | | | | | This is a little hairy here because the allocation and usage of this functionality is split into two places in libpthread. Notes: svn path=/head/; revision=145039
* i386_set_ldt() is not available when running 32 bit binaries on amd64Peter Wemm2004-11-061-0/+7
| | | | | | | | kernels. Use the recently exposed direct-set routines instead. This is only activated for when we compile i386 support libraries on amd64. Notes: svn path=/head/; revision=137295
* Add missing brackets. It was committed from wrong tree.David Xu2004-08-261-1/+1
| | | | Notes: svn path=/head/; revision=134326
* gcc -O2 cleanup. tested for a long time.David Xu2004-08-251-2/+2
| | | | | | | Reviewed by: deischen Notes: svn path=/head/; revision=134319
* 1. Add macro DTV_OFFSET to calculate dtv offset in tcb.David Xu2004-08-161-0/+2
| | | | | | | 2. Export symbols needed by debugger. Notes: svn path=/head/; revision=133801
* Add TLS support for i386 and amd64.Doug Rabson2004-08-151-4/+3
| | | | Notes: svn path=/head/; revision=133756
* Call kse_switchin to switch context when being debugged.David Xu2004-07-131-6/+18
| | | | Notes: svn path=/head/; revision=132125
* Make KSE_STACKSIZE machine dependent by moving it from thr_kern.c toMarcel Moolenaar2003-09-191-0/+2
| | | | | | | | | pthread_md.h. This commit only moves the definition; it does not change it for any of the platforms. This more easily allows 64-bit architectures (in particular) to pick a slightly larger stack size. Notes: svn path=/head/; revision=120263
* Don't assume sizeof(long) = sizeof(int) on x86; use intDaniel Eischen2003-09-031-6/+6
| | | | | | | | | | | | | | | instead of long types for low-level locks. Add prototypes for some internal libc functions that are wrapped by the library as cancellation points. Add memory barriers to alpha atomic swap functions (submitted by davidxu). Requested by: bde Notes: svn path=/head/; revision=119723
* Rethink the MD interfaces for libpthread to account forDaniel Eischen2003-08-052-130/+185
| | | | | | | | | | | | archs that can (or are required to) have per-thread registers. Tested on i386, amd64; marcel is testing on ia64 and will have some follow-up commits. Reviewed by: davidxu Notes: svn path=/head/; revision=118510
* Take the same approach for i386 as that for ia64 and amd64. UseDaniel Eischen2003-07-311-14/+33
| | | | | | | | | | | | the userland version of [gs]etcontext to switch between a thread and the UTS scheduler (and back again). This also fixes a bug in i386 _thr_setcontext() which wasn't properly restoring the context. Reviewed by: davidxu Notes: svn path=/head/; revision=118277
* Clean up KSE specific data (KSD) macros a bit.Daniel Eischen2003-07-181-29/+8
| | | | | | | Reviewed by: davidxu Notes: svn path=/head/; revision=117713
* Untangle the inter-dependency of kse types and ksd types/functionsMarcel Moolenaar2003-06-232-13/+12
| | | | | | | | | | | | | | | | | | | | | | by moving the definition of struct ksd to pthread_md.h and removing the inclusion of ksd.h from thr_private.h (which has the definition of struct kse and kse_critical_t). This allows ksd.h to have inline functions that use struct kse and kse_critical_t and generally yields a cleaner implementation at the cost of not having all ksd related types/definitions in one header. Implement the ksd functionality on ia64 by using inline functions and permanently remove ksd.c from the ia64 specific makefile. This change does not clean up the i386 specific version of ksd.h. NOTE: The ksd code on ia64 abuses the tp register in the same way as it is abused in libthr in that it is incompatible with the runtime specification. This will be address when support for TLS hits the tree. Notes: svn path=/head/; revision=116771
* Change the definition of _ksd_curkse, _ksd_curthread andMarcel Moolenaar2003-06-231-4/+4
| | | | | | | | | | | | _ksd_readandclear_tmbx to be function-like. That way we can define them as inline functions or create prototypes for them. This change allows the ksd interface on ia64 to be fully inlined. Notes: svn path=/head/; revision=116719
* Move the mailbox to the beginning of the thread and align theDaniel Eischen2003-04-301-0/+3
| | | | | | | thread so that the context (SSE FPU state) is also aligned. Notes: svn path=/head/; revision=114295
* Add a macro to get the current thread mailbox pointer.Daniel Eischen2003-04-231-0/+1
| | | | Notes: svn path=/head/; revision=113944
* Sorry folks; I accidentally committed a patch from what I was workingDaniel Eischen2003-04-183-10/+7
| | | | | | | | | on a couple of days ago. This should be the most recent changes. Noticed by: davidxu Notes: svn path=/head/; revision=113661
* Add architecture dependent atomic ops (atomic_swap only), KSE specificDaniel Eischen2003-04-183-0/+249
data, and userland versions of [gs]etcontext(). Modify the UTS entry and exit functions to account of FPU validity and format. Notes: svn path=/head/; revision=113656