Usermode/libnet - Fix IPV4 parsing code to use stroul
[tpg/acess2.git] / KernelLand / Kernel / threads.c
index 193ddfe..8762a7c 100644 (file)
@@ -13,6 +13,7 @@
 #include <rwlock.h>
 #include <vfs_threads.h>       // VFS Handle maintainence
 #include <events.h>
+#include <debug_hooks.h>
 
 // Configuration
 #define DEBUG_TRACE_ACTIVEQUEUE        0       // Trace adds/removals from the active queue
@@ -70,8 +71,8 @@ void  Threads_Sleep(void);
  int   Threads_Wake(tThread *Thread);
 void   Threads_AddActive(tThread *Thread);
 tThread        *Threads_RemActive(void);
-#endif
 void   Threads_ToggleTrace(int TID);
+#endif
 void   Threads_Fault(int Num);
 void   Threads_SegFault(tVAddr Addr);
 void   Threads_PostSignalTo(tThread *Thread, int SignalNum);
@@ -91,7 +92,9 @@ tGID  Threads_GetGID(void);
  int   Threads_SetGID(Uint *Errno, tUID ID);
 #endif
 void   Threads_int_DumpThread(tThread *thread);
+#if 0
 void   Threads_Dump(void);
+#endif
 void   Threads_DumpActive(void);
 tThread        *Threads_int_GetRunnable(void);
 
@@ -352,7 +355,7 @@ tThread *Threads_CloneTCB(Uint Flags)
        if(Flags & CLONE_VM) {
                tProcess        *newproc, *oldproc;
                oldproc = cur->Process;
-               new->Process = malloc( sizeof(struct sProcess) );
+               new->Process = calloc( sizeof(struct sProcess), 1 );
                newproc = new->Process;
                newproc->PID = new->TID;
                if( Flags & CLONE_PGID )
@@ -780,9 +783,13 @@ int Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **L
                }
                *ListTail = us;
        }
-       else {
+       else if( ListHead ) {
+               us->Next = *ListHead;
                *ListHead = us;
        }
+       else {
+               // Nothing
+       }
        
        //if( Proc_ThreadSync(us) )
        //      return ;
@@ -1307,22 +1314,16 @@ void Threads_int_DumpThread(tThread *thread)
  */
 void Threads_DumpActive(void)
 {
-       tThread *thread;
-       tThreadList     *list;
-       #if SCHEDULER_TYPE == SCHED_RR_PRI
-        int    i;
-       #endif
-       
        Log("Active Threads: (%i reported)", giNumActiveThreads);
        
        #if SCHEDULER_TYPE == SCHED_RR_PRI
-       for( i = 0; i < MIN_PRIORITY+1; i++ )
+       for( int i = 0; i < MIN_PRIORITY+1; i++ )
        {
-               list = &gaActiveThreads[i];
+               tThreadList *list = &gaActiveThreads[i];
        #else
-               list = &gActiveThreads;
+               tThreadList *list = &gActiveThreads;
        #endif
-               for(thread=list->Head;thread;thread=thread->Next)
+               for(tThread *thread = list->Head; thread; thread = thread->Next)
                {
                        Threads_int_DumpThread(thread);
                        if(thread->Status != THREAD_STAT_ACTIVE)

UCC git Repository :: git.ucc.asn.au