Pipes (XCC)
[akaros.git] / kern / include / ros / procdata.h
index de898b2..6211846 100644 (file)
 #include <ros/event.h>
 
 typedef struct procdata {
+       /*
        syscall_sring_t                 syscallring;
        char                                    pad1[SYSCALLRINGSIZE - sizeof(syscall_sring_t)];
+       */
+       syscall_sring_t                 *syscallring;
        sysevent_sring_t                syseventring;
        char                                    pad2[SYSEVENTRINGSIZE - sizeof(sysevent_sring_t)];
-#ifdef __i386__
+#if defined (__i386__) || defined (__x86_64) /* TODO: 64b */
        segdesc_t                               *ldt; // TODO: bug with this. (TLSV)
 #endif
        /* glibc relies on stuff above this point.  if you change it, you need to
         * rebuild glibc. */
+       struct resource_req             res_req[MAX_NUM_RESOURCES];
        struct event_queue              *kernel_evts[MAX_NR_EVENT];
        /* Long range, would like these to be mapped in lazily, as the vcores are
         * requested.  Sharing MAX_NUM_CPUS is a bit weird too. */
@@ -30,9 +34,7 @@ typedef struct procdata {
 
 #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
+/* TODO: I dislike having this not be a pointer (for kernel programming) */
+#define __procdata (*(procdata_t*)UDATA)
 
-#endif // !ROS_PROCDATA_H
+#endif /* ROS_PROCDATA_H */