Fixed TLS on i386
[akaros.git] / kern / include / ros / procdata.h
index 6d0913c..1509566 100644 (file)
@@ -4,11 +4,9 @@
 #define ROS_PROCDATA_H
 
 #include <ros/memlayout.h>
-#include <ros/syscall.h>
 #include <ros/ring_syscall.h>
-#include <ros/common.h>
-#include <ros/procinfo.h>
 #include <arch/mmu.h>
+#include <ros/arch/arch.h>
 
 typedef struct procdata {
        // The actual ring buffers for communicating with user space
@@ -19,7 +17,14 @@ typedef struct procdata {
 #ifdef __i386__
        segdesc_t *ldt;
 #endif
+
+       uintptr_t stack_pointers[MAX_NUM_CPUS];
 } procdata_t;
 #define PROCDATA_NUM_PAGES  ((sizeof(procdata_t)-1)/PGSIZE + 1)
 
+// this is how user programs access the procdata page
+#ifndef ROS_KERNEL
+# define __procdata (*(procdata_t*)UDATA)
+#endif
+
 #endif // !ROS_PROCDATA_H