BNX2X: limit queues to 2
[akaros.git] / kern / include / process.h
index 545970b..f925c52 100644 (file)
@@ -58,9 +58,11 @@ extern spinlock_t pid_hash_lock;
 
 /* Initialization */
 void proc_init(void);
+void proc_set_progname(struct proc *p, char *name);
 
 /* Process management: */
-error_t proc_alloc(struct proc **pp, struct proc *parent);
+struct proc *pid_nth(unsigned int n);
+error_t proc_alloc(struct proc **pp, struct proc *parent, int flags);
 void __proc_ready(struct proc *p);
 struct proc *proc_create(struct file *prog, char **argv, char **envp);
 int __proc_set_state(struct proc *p, uint32_t state) WRITES(p->state);
@@ -70,6 +72,7 @@ void proc_incref(struct proc *p, unsigned int val);
 void proc_decref(struct proc *p);
 void proc_run_s(struct proc *p);
 void __proc_run_m(struct proc *p);
+void __proc_startcore(struct proc *p, struct user_context *ctx);
 void proc_restartcore(void);
 void proc_destroy(struct proc *p);
 void proc_signal_parent(struct proc *child);
@@ -109,9 +112,12 @@ void __proc_take_corelist(struct proc *p, uint32_t *pc_arr, uint32_t num,
 /* Takes all cores, returns the count, fills in pc_arr with their pcoreid */
 uint32_t __proc_take_allcores(struct proc *p, uint32_t *pc_arr, bool preempt);
 
-/* Exposed for kern/src/resource.c for now */
+/* Exposed for now for convenience */
 void __map_vcore(struct proc *p, uint32_t vcoreid, uint32_t pcoreid);
 void __unmap_vcore(struct proc *p, uint32_t vcoreid);
+void vcore_account_online(struct proc *p, uint32_t vcoreid);
+void vcore_account_offline(struct proc *p, uint32_t vcoreid);
+uint64_t vcore_account_gettotal(struct proc *p, uint32_t vcoreid);
 
 /* Preemption management.  Some of these will change */
 void __proc_preempt_warn(struct proc *p, uint32_t vcoreid, uint64_t when);
@@ -139,7 +145,7 @@ void __tlbshootdown(uint32_t srcid, long a0, long a1, long a2);
 /* Arch Specific */
 void proc_pop_ctx(struct user_context *ctx) __attribute__((noreturn));
 void proc_init_ctx(struct user_context *ctx, uint32_t vcoreid, uintptr_t entryp,
-                   uintptr_t stack_top);
+                   uintptr_t stack_top, uintptr_t tls_desc);
 void proc_secure_ctx(struct user_context *ctx);
 void __abandon_core(void);