X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Farch%2Fx64%2Fthread.cc;h=8fccb617817159bf9c09a45e1a8b57b9292cf654;hb=f40e08b2e9e6c351e13772c65932536e40013377;hp=3b1b086c2153c147791678898061ef2ab117e050;hpb=7da27a216a7f4bb3331fe315cdbec69bfcf2c762;p=polintos%2Fscott%2Fpriv.git diff --git a/kernel/arch/x64/thread.cc b/kernel/arch/x64/thread.cc index 3b1b086..8fccb61 100644 --- a/kernel/arch/x64/thread.cc +++ b/kernel/arch/x64/thread.cc @@ -2,31 +2,15 @@ // // This software is copyright (c) 2006 Scott Wood . // -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal with -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: +// This software is provided 'as-is', without any express or implied warranty. +// In no event will the authors or contributors be held liable for any damages +// arising from the use of this software. // -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimers. -// -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimers in the -// documentation and/or other materials provided with the distribution. -// -// * The names of the Software's authors and/or contributors -// may not be used to endorse or promote products derived from -// this Software without specific prior written permission. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE -// SOFTWARE. +// Permission is hereby granted to everyone, free of charge, to use, copy, +// modify, prepare derivative works of, publish, distribute, perform, +// sublicense, and/or sell copies of the Software, provided that the above +// copyright notice and disclaimer of warranty be included in all copies or +// substantial portions of this software. #include #include @@ -37,16 +21,16 @@ namespace Arch { { u64 dummy1, dummy2; - if (dest->addr_space) { - assert(dest->addr_space == dest->active_addr_space); + if (dest->aspace) { + assert(dest->aspace == dest->active_aspace); - if (dest->addr_space != src->active_addr_space) { - u64 cr3 = Mem::kvirt_to_phys(dest->addr_space-> + if (dest->aspace != src->active_aspace) { + u64 cr3 = Mem::kvirt_to_phys(dest->aspace-> page_table->toplevel); asm volatile("movq %0, %%cr3" : : "r" (cr3) : "memory"); } } else { - dest->active_addr_space = src->active_addr_space; + dest->active_aspace = src->active_aspace; } Priv::tss.rsp[0] = reinterpret_cast(dest);