14a738ee8SSiva Chandra Reddy //===-- Implementation of the tss_create ----------------------------------===// 24a738ee8SSiva Chandra Reddy // 34a738ee8SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 44a738ee8SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 54a738ee8SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 64a738ee8SSiva Chandra Reddy // 74a738ee8SSiva Chandra Reddy //===----------------------------------------------------------------------===// 84a738ee8SSiva Chandra Reddy 94a738ee8SSiva Chandra Reddy #include "tss_create.h" 104a738ee8SSiva Chandra Reddy 114a738ee8SSiva Chandra Reddy #include "src/__support/common.h" 12*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h" 134a738ee8SSiva Chandra Reddy #include "src/__support/threads/thread.h" 144a738ee8SSiva Chandra Reddy 154a738ee8SSiva Chandra Reddy #include <threads.h> 164a738ee8SSiva Chandra Reddy 17*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL { 184a738ee8SSiva Chandra Reddy 194a738ee8SSiva Chandra Reddy LLVM_LIBC_FUNCTION(int, tss_create, (tss_t * key, tss_dtor_t dtor)) { 20b6bc9d72SGuillaume Chatelet auto k = LIBC_NAMESPACE::new_tss_key(dtor); 214a738ee8SSiva Chandra Reddy if (!k) 224a738ee8SSiva Chandra Reddy return thrd_error; 234a738ee8SSiva Chandra Reddy *key = *k; 244a738ee8SSiva Chandra Reddy return thrd_success; 254a738ee8SSiva Chandra Reddy } 264a738ee8SSiva Chandra Reddy 27*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL 28