Pthread create, join, and exit
[akaros.git] / user / include / vcore.h
1 #ifndef _VCORE_H
2 #define _VCORE_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #include <arch/vcore.h>
9 #include <string.h>
10
11 #define LOG2_MAX_VCORES 6
12 #define MAX_VCORES (1 << LOG2_MAX_VCORES)
13
14 #define TRANSITION_STACK_PAGES 2
15 #define TRANSITION_STACK_SIZE (TRANSITION_STACK_PAGES*PGSIZE)
16
17 /* Defined by glibc; Must be implemented by a user level threading library */
18 extern void vcore_entry();
19
20 /* Vcore API functions */
21 int vcore_init(void);
22 int vcore_id(void);
23 int vcore_request(size_t k);
24 void vcore_yield(void);
25 size_t max_vcores(void);
26 size_t num_vcores(void);
27
28 #ifdef __cplusplus
29 }
30 #endif
31
32 #endif