linux_emul.h (e16fe1c7304dad853feab78221dfdadce3053e7e) linux_emul.h (5dd1d097f8e4d1a4c6df13f9ccae296792eac064)
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:

--- 47 unchanged lines hidden (view full) ---

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*/
63#define LINUX_XUNSUP_EPOLL 0x00000002 /* unsupported epoll events */
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:

--- 47 unchanged lines hidden (view full) ---

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*/
63#define LINUX_XUNSUP_EPOLL 0x00000002 /* unsupported epoll events */
64#define LINUX_XUNSUP_FUTEXPIOP 0x00000004 /* uses unsupported pi futex */
64
65struct linux_pemuldata {
66 uint32_t flags; /* process emuldata flags */
67 struct sx pem_sx; /* lock for this struct */
68 void *epoll; /* epoll data */
69};
70
71#define LINUX_PEM_XLOCK(p) sx_xlock(&(p)->pem_sx)
72#define LINUX_PEM_XUNLOCK(p) sx_xunlock(&(p)->pem_sx)
73#define LINUX_PEM_SLOCK(p) sx_slock(&(p)->pem_sx)
74#define LINUX_PEM_SUNLOCK(p) sx_sunlock(&(p)->pem_sx)
75
76struct linux_pemuldata *pem_find(struct proc *);
77
78#endif /* !_LINUX_EMUL_H_ */
65
66struct linux_pemuldata {
67 uint32_t flags; /* process emuldata flags */
68 struct sx pem_sx; /* lock for this struct */
69 void *epoll; /* epoll data */
70};
71
72#define LINUX_PEM_XLOCK(p) sx_xlock(&(p)->pem_sx)
73#define LINUX_PEM_XUNLOCK(p) sx_xunlock(&(p)->pem_sx)
74#define LINUX_PEM_SLOCK(p) sx_slock(&(p)->pem_sx)
75#define LINUX_PEM_SUNLOCK(p) sx_sunlock(&(p)->pem_sx)
76
77struct linux_pemuldata *pem_find(struct proc *);
78
79#endif /* !_LINUX_EMUL_H_ */