aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linuxkpi/common/include/linux/compat.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/linuxkpi/common/include/linux/compat.h')
-rw-r--r--sys/compat/linuxkpi/common/include/linux/compat.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/compat.h b/sys/compat/linuxkpi/common/include/linux/compat.h
index b6bb5e8ed24b..8a5a6918bb7c 100644
--- a/sys/compat/linuxkpi/common/include/linux/compat.h
+++ b/sys/compat/linuxkpi/common/include/linux/compat.h
@@ -25,8 +25,6 @@
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
*/
#ifndef _LINUXKPI_LINUX_COMPAT_H_
#define _LINUXKPI_LINUX_COMPAT_H_
@@ -43,17 +41,20 @@ extern int linux_alloc_current(struct thread *, int flags);
extern void linux_free_current(struct task_struct *);
extern struct domainset *linux_get_vm_domain_set(int node);
+#define __current_unallocated(td) \
+ __predict_false((td)->td_lkpi_task == NULL)
+
static inline void
linux_set_current(struct thread *td)
{
- if (__predict_false(td->td_lkpi_task == NULL))
+ if (__current_unallocated(td))
lkpi_alloc_current(td, M_WAITOK);
}
static inline int
linux_set_current_flags(struct thread *td, int flags)
{
- if (__predict_false(td->td_lkpi_task == NULL))
+ if (__current_unallocated(td))
return (lkpi_alloc_current(td, flags));
return (0);
}
@@ -61,4 +62,7 @@ linux_set_current_flags(struct thread *td, int flags)
#define compat_ptr(x) ((void *)(uintptr_t)x)
#define ptr_to_compat(x) ((uintptr_t)x)
+typedef void fpu_safe_exec_cb_t(void *ctx);
+void lkpi_fpu_safe_exec(fpu_safe_exec_cb_t func, void *ctx);
+
#endif /* _LINUXKPI_LINUX_COMPAT_H_ */