diff options
author | Paul Irofti <pirofti@cvs.openbsd.org> | 2011-04-05 15:44:41 +0000 |
---|---|---|
committer | Paul Irofti <pirofti@cvs.openbsd.org> | 2011-04-05 15:44:41 +0000 |
commit | e9d8dbaaa4ecfc7f3fc02468180cccb15f987d36 (patch) | |
tree | 4ee26ba68400a9f6c2028625072410a88da9e656 /sys/compat/linux/linux_emuldata.h | |
parent | 9aa2d14028f79d12800ea4c3a686d9fbfad0cd44 (diff) |
Add set_tid_address() syscall. Lots of help from and okay guenther@.
This is more than a simple syscall.This expands TLS support quite a bit.
Also linux_sys_clone() handles CLONE_CHILD_CLEARTID, CLONE_CHILD_SETTID,
CLONE_PARENT_SETTID flags as well as the CLONE_SETTLS by doing what
set_thread_area() is doing.
Next on the list is futex support which should allow compat to cope with
newer Linux kernels.
Diffstat (limited to 'sys/compat/linux/linux_emuldata.h')
-rw-r--r-- | sys/compat/linux/linux_emuldata.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_emuldata.h b/sys/compat/linux/linux_emuldata.h index 316a9816ed4..4eb541081d4 100644 --- a/sys/compat/linux/linux_emuldata.h +++ b/sys/compat/linux/linux_emuldata.h @@ -1,4 +1,4 @@ -/* $OpenBSD: linux_emuldata.h,v 1.4 2008/06/26 05:42:14 ray Exp $ */ +/* $OpenBSD: linux_emuldata.h,v 1.5 2011/04/05 15:44:40 pirofti Exp $ */ /* $NetBSD: linux_emuldata.h,v 1.4 2002/02/15 16:48:02 christos Exp $ */ /*- * Copyright (c) 1998,2002 The NetBSD Foundation, Inc. @@ -39,5 +39,14 @@ */ struct linux_emuldata { caddr_t p_break; /* Cached per-process break value */ + + void *child_set_tid; /* Let the child set the thread ID at start */ + void *child_clear_tid; /* Let the child clear the thread ID on exit */ + unsigned child_tls_base;/* Set the Thread Local Storage on clone */ + + /* Same as above, passed by the parent when forking. */ + void *my_set_tid; + void *my_clear_tid; + unsigned my_tls_base; }; #endif /* !_LINUX_EMULDATA_H */ |