commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnumach/i386 i386/mp_desc.c i386/pcb.c i386/thr...


From: Roland McGrath
Subject: gnumach/i386 i386/mp_desc.c i386/pcb.c i386/thr...
Date: Sun, 07 Apr 2002 20:09:44 -0400

CVSROOT:        /cvsroot/hurd
Module name:    gnumach
Branch:         oskit-branch
Changes by:     Roland McGrath <address@hidden> 02/04/07 20:09:43

Modified files:
        i386/i386      : mp_desc.c pcb.c thread.h mp_desc.h ldt.c 
                         user_ldt.c ldt.h 
        i386/intel     : pmap.c 

Log message:
        2002-04-07  Roland McGrath  <address@hidden>
        
        Provide a new special segment to user tasks so %gs:0 points to one
        writable word, a different word on each CPU, saved by thread switching.
        * i386/i386/ldt.h (USER_GS): New macro.
        * i386/i386/ldt.c (ldt_init): Set USER_GS to point at global variable
        `user_thread_register'.
        * i386/i386/mp_desc.h (struct mp_desc_table): New member
        `user_thread_register'.
        * i386/i386/mp_desc.c (mp_desc_init): Set USER_GS descriptor in LDT to
        point at that member.
        * i386/intel/pmap.c (pmap_bootstrap): Make direct-mapped pages
        accessible in user mode.
        * i386/i386/user_ldt.c (i386_set_ldt): Silently cap user segment
        limits to VM_MAX_ADDRESS.
        * i386/i386/thread.h (struct i386_machine_state): New member
        `user_thread_register'.
        * i386/i386/pcb.c (pcb_init, thread_setstatus): Set user threads' %gs
        register to USER_GS rather than USER_DS.
        (switch_ktss): Take new arg OLD_PCB.
        Don't do set_ldt at all if old and new match.
        Switch the per-CPU user thread variable into OLD_PCB and out of PCB.
        (stack_handoff, load_context, switch_context): Update callers.
        * i386/i386/user_ldt.c (i386_set_ldt): Likewise.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/mp_desc.c.diff?only_with_tag=oskit-branch&tr1=1.1.1.1.2.9&tr2=1.1.1.1.2.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/pcb.c.diff?only_with_tag=oskit-branch&tr1=1.2.2.3&tr2=1.2.2.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/thread.h.diff?only_with_tag=oskit-branch&tr1=1.2.2.3&tr2=1.2.2.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/mp_desc.h.diff?only_with_tag=oskit-branch&tr1=1.1.1.1.2.5&tr2=1.1.1.1.2.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/ldt.c.diff?only_with_tag=oskit-branch&tr1=1.1.1.1.2.1&tr2=1.1.1.1.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/user_ldt.c.diff?only_with_tag=oskit-branch&tr1=1.2.2.1&tr2=1.2.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/i386/ldt.h.diff?only_with_tag=oskit-branch&tr1=1.1.1.1.2.2&tr2=1.1.1.1.2.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnumach/gnumach/i386/intel/pmap.c.diff?only_with_tag=oskit-branch&tr1=1.3.2.3&tr2=1.3.2.4&r1=text&r2=text




reply via email to

[Prev in Thread] Current Thread [Next in Thread]