Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_emul.h
Show All 27 Lines | |||||
* | * | ||||
* $FreeBSD$ | * $FreeBSD$ | ||||
*/ | */ | ||||
#ifndef _LINUX_EMUL_H_ | #ifndef _LINUX_EMUL_H_ | ||||
#define _LINUX_EMUL_H_ | #define _LINUX_EMUL_H_ | ||||
struct image_params; | struct image_params; | ||||
struct note_info_list; | |||||
/* Linux core notes are labeled "CORE" */ | |||||
#define LINUX_ABI_VENDOR "CORE" | |||||
/* | /* | ||||
* modeled after similar structure in NetBSD | * modeled after similar structure in NetBSD | ||||
* this will be extended as we need more functionality | * this will be extended as we need more functionality | ||||
*/ | */ | ||||
struct linux_emuldata { | struct linux_emuldata { | ||||
int *child_set_tid; /* in clone(): Child's TID to set on clone */ | int *child_set_tid; /* in clone(): Child's TID to set on clone */ | ||||
int *child_clear_tid;/* in clone(): Child's TID to clear on exit */ | int *child_clear_tid;/* in clone(): Child's TID to clear on exit */ | ||||
int flags; /* thread emuldata flags */ | int flags; /* thread emuldata flags */ | ||||
int em_tid; /* thread id */ | int em_tid; /* thread id */ | ||||
struct linux_robust_list_head *robust_futexes; | struct linux_robust_list_head *robust_futexes; | ||||
}; | }; | ||||
struct linux_emuldata *em_find(struct thread *); | struct linux_emuldata *em_find(struct thread *); | ||||
int linux_exec_imgact_try(struct image_params *); | int linux_exec_imgact_try(struct image_params *); | ||||
void linux_proc_init(struct thread *, struct thread *, int); | void linux_proc_init(struct thread *, struct thread *, int); | ||||
void linux_on_exit(struct proc *); | void linux_on_exit(struct proc *); | ||||
void linux_schedtail(struct thread *); | void linux_schedtail(struct thread *); | ||||
void linux_on_exec(struct proc *, struct image_params *); | void linux_on_exec(struct proc *, struct image_params *); | ||||
void linux_thread_dtor(struct thread *); | void linux_thread_dtor(struct thread *); | ||||
void linux_thread_detach(struct thread *); | void linux_thread_detach(struct thread *); | ||||
int linux_common_execve(struct thread *, struct image_args *); | int linux_common_execve(struct thread *, struct image_args *); | ||||
void linux32_prepare_notes(struct thread *, struct note_info_list *, size_t *); | |||||
void linux64_prepare_notes(struct thread *, struct note_info_list *, size_t *); | |||||
/* process emuldata flags */ | /* process emuldata flags */ | ||||
#define LINUX_XDEPR_REQUEUEOP 0x00000001 /* uses deprecated | #define LINUX_XDEPR_REQUEUEOP 0x00000001 /* uses deprecated | ||||
futex REQUEUE op*/ | futex REQUEUE op*/ | ||||
#define LINUX_XUNSUP_EPOLL 0x00000002 /* unsupported epoll events */ | #define LINUX_XUNSUP_EPOLL 0x00000002 /* unsupported epoll events */ | ||||
#define LINUX_XUNSUP_FUTEXPIOP 0x00000004 /* uses unsupported pi futex */ | #define LINUX_XUNSUP_FUTEXPIOP 0x00000004 /* uses unsupported pi futex */ | ||||
struct linux_pemuldata { | struct linux_pemuldata { | ||||
Show All 14 Lines |