prepare_process(): pass cpu_set in program_load_desc

This commit is contained in:
Balazs Gerofi
2016-12-09 16:32:20 +09:00
parent 7d13bfb14e
commit fdcf766337
5 changed files with 33 additions and 5 deletions

View File

@@ -700,7 +700,8 @@ static inline int has_cap_sys_admin(struct thread *th)
void hold_address_space(struct address_space *);
void release_address_space(struct address_space *);
struct thread *create_thread(unsigned long user_pc);
struct thread *create_thread(unsigned long user_pc,
unsigned long *__cpu_set, size_t cpu_set_size);
struct thread *clone_thread(struct thread *org, unsigned long pc,
unsigned long sp, int clone_flags);
void destroy_thread(struct thread *thread);

View File

@@ -149,6 +149,10 @@ struct program_image_section {
#define MCK_RLIMIT_SIGPENDING 14
#define MCK_RLIMIT_STACK 15
#define PLD_CPU_SET_MAX_CPUS 1024
typedef unsigned long __cpu_set_unit;
#define PLD_CPU_SET_SIZE (PLD_CPU_SET_MAX_CPUS / (8 * sizeof(__cpu_set_unit)))
struct program_load_desc {
int num_sections;
int status;
@@ -178,6 +182,7 @@ struct program_load_desc {
struct rlimit rlimit[MCK_RLIM_MAX];
unsigned long interp_align;
char shell_path[SHELL_PATH_MAX_LEN];
__cpu_set_unit cpu_set[PLD_CPU_SET_SIZE];
struct program_image_section sections[0];
};