X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fthreads.c;h=54438c32a79db339f7df6db0f9b19e08f24f4752;hb=eb80b37c619769496f3fca58d54c4a4b8d8fac4a;hp=bcea3fa9bbfdf327958995487f099883f523027a;hpb=1a96e0dd77d6922078edd703fc7c2e809b9499b8;p=tpg%2Facess2.git diff --git a/Kernel/threads.c b/Kernel/threads.c index bcea3fa9..54438c32 100644 --- a/Kernel/threads.c +++ b/Kernel/threads.c @@ -20,6 +20,7 @@ extern int Proc_Clone(Uint *Err, Uint Flags); // === PROTOTYPES === void Threads_Init(); void Threads_SetName(char *NewName); +char *Threads_GetName(int ID); void Threads_SetTickets(int Num); int Threads_WaitTID(int TID, int *status); tThread *Threads_GetThread(Uint TID); @@ -117,6 +118,18 @@ void Threads_SetName(char *NewName) strcpy(cur->ThreadName, NewName); } +/** + * \fn char *Threads_GetName(int ID) + * \brief Gets a thread's name + */ +char *Threads_GetName(int ID) +{ + if(ID == -1) { + return Proc_GetCurThread()->ThreadName; + } + return NULL; +} + /** * \fn void Threads_SetTickets(int Num) * \brief Sets the 'priority' of a task @@ -273,7 +286,7 @@ void Threads_Kill(tThread *Thread, int Status) tMsg *msg; // Kill all children - #if 1 + #if 0 { tThread *child; for(child = gActiveThreads; @@ -586,5 +599,6 @@ tThread *Threads_GetNextToRun(int CPU) void Threads_SegFault(tVAddr Addr) { //Threads_SendSignal( Proc_GetCurThread()->TID, SIGSEGV ); - Threads_Kill( Proc_GetCurThread(), 0 ); + Log("Thread #%i committed a segfault at address %p\n", Proc_GetCurThread()->TID, Addr); + Threads_Exit( 0, 0 ); }