X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=blobdiff_plain;f=kernel%2Fcore%2Fthread.cc;h=80451c0f8a3c5e5157a64c68b24fd9d62750f663;hp=19237396ac30c4a94598e730c01b47bc09421f3f;hb=1ac390fe1e18444008857b056c947710be9621a8;hpb=2e0cf58da9949572c6e334a07bba6774fdb749f9 diff --git a/kernel/core/thread.cc b/kernel/core/thread.cc index 1923739..80451c0 100644 --- a/kernel/core/thread.cc +++ b/kernel/core/thread.cc @@ -2,23 +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 condition: +// 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. // -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// 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 @@ -252,7 +244,8 @@ namespace Threads { runqueue_lock.unlock_irq(); } - Thread *Sched::new_thread(thread_func func, void *arg, char *name) + Thread *Sched::new_thread(thread_func func, void *arg1, + void *arg2, char *name) { // Allocate a page for the thread's stack, and stick the thread // struct at the top of the stack. It's placed at the top rather @@ -281,10 +274,10 @@ namespace Threads { t->time_slice = prio_to_slice(t->ts_prio); t->blocked_on = NULL; t->last_replenish = 0; - t->addr_space = NULL; - t->active_addr_space = NULL; + t->aspace = NULL; + t->active_aspace = NULL; - t->arch.init(reinterpret_cast(func), arg); + t->arch.init(reinterpret_cast(func), arg1, arg2); if (name) strncpy(t->name, name, Thread::name_len); @@ -393,13 +386,13 @@ namespace Threads { } } - void Thread::set_aspace(Mem::AddrSpace *aspace) + void Thread::set_aspace(Mem::ProcAddrSpace *ASPACE) { // FIXME: lock thread against scheduling; this temporary method should // be gone before SMP anyway. ll_ints_off(); - addr_space = active_addr_space = aspace; + aspace = active_aspace = ASPACE; Arch::set_aspace(aspace); ll_ints_on(); }