Add READ_ONCE and WRITE_ONCE (XCC)
[akaros.git] / kern / include / ros / procinfo.h
index 26a8363..56bf7d9 100644 (file)
@@ -52,7 +52,7 @@ typedef struct procinfo {
        size_t max_vcores;      /* TODO: change to a uint32_t */
        uint64_t tsc_freq;
        uint64_t timing_overhead;
-       void *heap_bottom;
+       uintptr_t program_end;
        /* glibc relies on stuff above this point.  if you change it, you need to
         * rebuild glibc. */
        bool is_mcp;                    /* is in multi mode */
@@ -67,6 +67,12 @@ typedef struct procinfo {
 /* We align this so that the kernel can easily allocate it in the BSS */
 struct proc_global_info {
        unsigned long cpu_feats[__NR_CPU_FEAT_BITS];
+       uint64_t x86_default_xcr0;
+       uint64_t tsc_freq;
+       uint64_t tsc_overhead;
+       uint64_t bus_freq;
+       uint64_t walltime_ns_last;
+       uint64_t tsc_cycles_last;
 } __attribute__((aligned(PGSIZE)));
 #define PROCGINFO_NUM_PAGES  (sizeof(struct proc_global_info) / PGSIZE)
 
@@ -93,6 +99,9 @@ static inline uint32_t __get_vcoreid_from_procinfo(void)
         * there is a 'memory barrier' between the IPI write and the seqctr write.
         * I think this is true. */
        uint32_t kpcoreid, kvcoreid;
+       extern long __ros_syscall_noerrno(unsigned int _num, long _a0, long _a1,
+                                         long _a2, long _a3, long _a4, long _a5);
+
        seq_ctr_t old_seq;
        do {
                cmb();