| Index: src/trusted/service_runtime/osx/mach_thread_map.h
|
| ===================================================================
|
| --- src/trusted/service_runtime/osx/mach_thread_map.h (revision 0)
|
| +++ src/trusted/service_runtime/osx/mach_thread_map.h (revision 0)
|
| @@ -0,0 +1,71 @@
|
| +/*
|
| + * Copyright (c) 2013 The Native Client Authors. All rights reserved.
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef NATIVE_CLIENT_SERVICE_RUNTIME_OSX_MACH_THREAD_MAP_H_
|
| +#define NATIVE_CLIENT_SERVICE_RUNTIME_OSX_MACH_THREAD_MAP_H_ 1
|
| +
|
| +#if NACL_OSX
|
| +
|
| +#include <mach/mach.h>
|
| +#include <stdint.h>
|
| +
|
| +#include "native_client/src/include/nacl_base.h"
|
| +#include "native_client/src/include/nacl_compiler_annotations.h"
|
| +#include "native_client/src/trusted/service_runtime/nacl_tls.h"
|
| +
|
| +EXTERN_C_BEGIN
|
| +
|
| +#if NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86 && NACL_BUILD_SUBARCH == 64
|
| +
|
| +/*
|
| + * Retrieves the Native Client thread index for a given Mach thread, or
|
| + * NACL_TLS_INDEX_INVALID if the Mach thread is unknown to Native Client.
|
| + */
|
| +uint32_t NaClGetThreadIndexForMachThread(mach_port_t mach_thread);
|
| +
|
| +/*
|
| + * Establishes a mapping from the currently executing Mach thread to the
|
| + * given Native Client thread index.
|
| + */
|
| +void NaClSetCurrentMachThreadForThreadIndex(uint32_t nacl_thread_index);
|
| +
|
| +/*
|
| + * Clears any existing mapping to any Mach thread for the given Native Client
|
| + * thread index. A thread's mapping must be cleared by itself, not by another
|
| + * thread.
|
| + */
|
| +void NaClClearMachThreadForThreadIndex(uint32_t nacl_thread_index);
|
| +
|
| +#else
|
| +
|
| +/*
|
| + * NaClGetThreadIndexForMachThread is not implemented for x86-32, although it
|
| + * it could be implemented by using thread_get_state to obtain the thread's
|
| + * state and returning %gs >> 3. It's left unimplemented because the only
|
| + * prospective call sites already have access to the thread state and thus %gs
|
| + * themselves, and directing them through this function would add system call
|
| + * overhead for a redundant thread_get_state.
|
| + */
|
| +
|
| +static INLINE void NaClSetCurrentMachThreadForThreadIndex(
|
| + uint32_t nacl_thread_index) {
|
| + /* No-op for x86-32. */
|
| + UNREFERENCED_PARAMETER(nacl_thread_index);
|
| +}
|
| +
|
| +static INLINE void NaClClearMachThreadForThreadIndex(
|
| + uint32_t nacl_thread_index) {
|
| + /* No-op for x86-32. */
|
| + UNREFERENCED_PARAMETER(nacl_thread_index);
|
| +}
|
| +
|
| +#endif
|
| +
|
| +EXTERN_C_END
|
| +
|
| +#endif /* NACL_OSX */
|
| +
|
| +#endif /* NATIVE_CLIENT_SERVICE_RUNTIME_OSX_MACH_THREAD_MAP_H_ */
|
|
|
| Property changes on: src/trusted/service_runtime/osx/mach_thread_map.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|