Handle pending signals even when resuming current_uthread
[akaros.git] / kern / include / env.h
index 68e93a1..7d38d56 100644 (file)
@@ -32,6 +32,8 @@ struct proc {
        TAILQ_ENTRY(proc) sibling_link;
        spinlock_t proc_lock;
        struct user_context scp_ctx;    /* context for an SCP.  TODO: move to vc0 */
+       char user[64]; /* user name */
+
        pid_t pid;
        /* Tempting to add a struct proc *parent, but we'd need to protect the use
         * of that reference from concurrent parent-death (letting init inherit
@@ -65,8 +67,10 @@ struct proc {
        // Address space
        pde_t *COUNT(NPDENTRIES) env_pgdir;                     // Kernel virtual address of page dir
        physaddr_t env_cr3;                     // Physical address of page dir
-       spinlock_t mm_lock;             /* Protects page tables and VMRs (mem mgmt) */
+       spinlock_t vmr_lock;            /* Protects VMR tree (mem mgmt) */
+       spinlock_t pte_lock;            /* Protects page tables (mem mgmt) */
        struct vmr_tailq vm_regions;
+       int vmr_history;
 
        // Per process info and data pages
        procinfo_t *SAFE procinfo;       // KVA of per-process shared info table (RO)
@@ -84,7 +88,11 @@ struct proc {
        struct namespace                        *ns;
        struct fs_struct                        fs_env;
        struct files_struct                     open_files;
-       struct pgrp                             *pgrp;
+       struct pgrp                                     *pgrp;
+       struct fgrp                                     *fgrp;
+       struct chan                                     *slash;
+       struct chan                                     *dot;
+
 
        /* UCQ hashlocks */
        struct hashlock                         *ucq_hashlock;
@@ -93,6 +101,7 @@ struct proc {
        struct proc_alarm_set           alarmset;
        struct cv_lookup_tailq          abortable_sleepers;
        spinlock_t                                      abort_list_lock;
+       void *virtinfo;
 };
 
 /* Til we remove all Env references */