cvs commit: src/sys/conf files.i386 src/sys/i386/i386 machdep.c swtch.s sys_machdep.c tls.c vm_machdep.c src/sys/i386/include pcb_ext.h segments.h thread.h src/sys/sys syscall-args syscall-hide.h syscall.h sysproto.h sysunion.h tls.h ...

Matthew Dillon dillon at
Mon Feb 21 13:41:24 PST 2005

dillon      2005/02/21 13:41:01 PST

DragonFly src repository

  Modified files:
    sys/conf             files.i386 
    sys/i386/i386        machdep.c swtch.s sys_machdep.c 
    sys/i386/include     pcb_ext.h segments.h thread.h 
    sys/sys              syscall-args syscall-hide.h syscall.h 
                sysproto.h sysunion.h 
    lib/libc/sys umtx.2 
  Added files:
    sys/i386/i386        tls.c 
    sys/sys              tls.h 
    lib/libc/sys         tls.2 
  Implement TLS support, tls manual pages, and link the umtx and tls manual
  pages together.  TLS stands for 'thread local storage' and is used to
  support efficient userland threading and threaded data access models.
  Three TLS segments are supported in order to (eventually) support GCC3's
  __thread qualifier.  David Xu's thread library only uses one descriptor
  for now.  The system calls implement a mostly machine-independant API
  which return architecture-specific results.  Rather then pass the actual
  descriptor structure, which unnecessarily pollutes the userland
  implementation, we pass a more generic (base,size) and the system call
  returns the %gs load value for IA32.  For AMD64 and other architectures,
  the returned value will be something for those architectures.
  The current low level assembly support is not as efficient as it could be,
  but it is good enough for now.  The heavy weight switch code for processes
  does the work.  The light weight switch code for pure kernel threads has not
  been changed (since the kernel doesn't use TLS descriptors we can just ignore
  Based on work by David Xu <davidxu at xxxxxxxxxxx> and Matthew Dillon <dillon at xxxxxxxxxxxxx>
  Revision  Changes    Path
  1.28      +1 -0      src/sys/conf/files.i386
  1.70      +27 -0     src/sys/i386/i386/machdep.c
  1.37      +6 -0      src/sys/i386/i386/swtch.s
  1.16      +66 -27    src/sys/i386/i386/sys_machdep.c
  1.33      +2 -1      src/sys/i386/i386/vm_machdep.c
  1.6       +1 -0      src/sys/i386/include/pcb_ext.h
  1.8       +5 -2      src/sys/i386/include/segments.h
  1.8       +4 -0      src/sys/i386/include/thread.h
  1.10      +2 -0      src/sys/sys/syscall-args
  1.27      +2 -0      src/sys/sys/syscall-hide.h
  1.27      +3 -1      src/sys/sys/syscall.h
  1.27      +3 -1      src/sys/sys/
  1.27      +20 -0     src/sys/sys/sysproto.h
  1.24      +2 -0      src/sys/sys/sysunion.h
  1.10      +3 -1      src/lib/libc/sys/
  1.2       +2 -0      src/lib/libc/sys/umtx.2

More information about the Commits mailing list