linux_emul.h (293493) | linux_emul.h (293528) |
---|---|
1/*- 2 * Copyright (c) 2006 Roman Divacky 3 * Copyright (c) 2013 Dmitry Chagin 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 12 unchanged lines hidden (view full) --- 21 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * | 1/*- 2 * Copyright (c) 2006 Roman Divacky 3 * Copyright (c) 2013 Dmitry Chagin 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 12 unchanged lines hidden (view full) --- 21 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * |
29 * $FreeBSD: stable/10/sys/compat/linux/linux_emul.h 293493 2016-01-09 15:16:13Z dchagin $ | 29 * $FreeBSD: stable/10/sys/compat/linux/linux_emul.h 293528 2016-01-09 16:11:09Z dchagin $ |
30 */ 31 32#ifndef _LINUX_EMUL_H_ 33#define _LINUX_EMUL_H_ 34 35/* 36 * modeled after similar structure in NetBSD 37 * this will be extended as we need more functionality 38 */ 39struct linux_emuldata { 40 int *child_set_tid; /* in clone(): Child's TID to set on clone */ 41 int *child_clear_tid;/* in clone(): Child's TID to clear on exit */ 42 43 int pdeath_signal; /* parent death signal */ | 30 */ 31 32#ifndef _LINUX_EMUL_H_ 33#define _LINUX_EMUL_H_ 34 35/* 36 * modeled after similar structure in NetBSD 37 * this will be extended as we need more functionality 38 */ 39struct linux_emuldata { 40 int *child_set_tid; /* in clone(): Child's TID to set on clone */ 41 int *child_clear_tid;/* in clone(): Child's TID to clear on exit */ 42 43 int pdeath_signal; /* parent death signal */ |
44 int flags; /* different emuldata flags */ | 44 int flags; /* thread emuldata flags */ |
45 int em_tid; /* thread id */ 46 47 struct linux_robust_list_head *robust_futexes; 48}; 49 50struct linux_emuldata *em_find(struct thread *); 51 | 45 int em_tid; /* thread id */ 46 47 struct linux_robust_list_head *robust_futexes; 48}; 49 50struct linux_emuldata *em_find(struct thread *); 51 |
52/* emuldata flags */ 53#define LINUX_XDEPR_REQUEUEOP 0x00000001 /* uses deprecated 54 futex REQUEUE op*/ 55 | |
56void linux_proc_init(struct thread *, struct thread *, int); 57void linux_proc_exit(void *, struct proc *); 58void linux_schedtail(struct thread *); 59void linux_proc_exec(void *, struct proc *, struct image_params *); 60void linux_thread_dtor(void *arg __unused, struct thread *); 61void linux_thread_detach(struct thread *); 62int linux_common_execve(struct thread *, struct image_args *); 63 | 52void linux_proc_init(struct thread *, struct thread *, int); 53void linux_proc_exit(void *, struct proc *); 54void linux_schedtail(struct thread *); 55void linux_proc_exec(void *, struct proc *, struct image_params *); 56void linux_thread_dtor(void *arg __unused, struct thread *); 57void linux_thread_detach(struct thread *); 58int linux_common_execve(struct thread *, struct image_args *); 59 |
60/* process emuldata flags */ 61#define LINUX_XDEPR_REQUEUEOP 0x00000001 /* uses deprecated 62 futex REQUEUE op*/ 63struct linux_pemuldata { 64 uint32_t flags; /* process emuldata flags */ 65 struct sx pem_sx; /* lock for this struct */ 66}; 67 68#define LINUX_PEM_XLOCK(p) sx_xlock(&(p)->pem_sx) 69#define LINUX_PEM_XUNLOCK(p) sx_xunlock(&(p)->pem_sx) 70#define LINUX_PEM_SLOCK(p) sx_slock(&(p)->pem_sx) 71#define LINUX_PEM_SUNLOCK(p) sx_sunlock(&(p)->pem_sx) 72 73struct linux_pemuldata *pem_find(struct proc *); 74 |
|
64#endif /* !_LINUX_EMUL_H_ */ | 75#endif /* !_LINUX_EMUL_H_ */ |