blob: 4b110d17170d6867de18425fc1cfafd2b9261283 [file] [log] [blame]
/*
* Copyright (c) 2023, Meta
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <errno.h>
#include <threads.h>
#include <zephyr/kernel.h>
#include <zephyr/posix/pthread.h>
int tss_create(tss_t *key, tss_dtor_t destructor)
{
switch (pthread_key_create(key, destructor)) {
case 0:
return thrd_success;
case EAGAIN:
return thrd_busy;
case ENOMEM:
return thrd_nomem;
default:
return thrd_error;
}
}
void *tss_get(tss_t key)
{
return pthread_getspecific(key);
}
int tss_set(tss_t key, void *val)
{
switch (pthread_setspecific(key, val)) {
case 0:
return thrd_success;
case ENOMEM:
return thrd_nomem;
default:
return thrd_error;
}
}
void tss_delete(tss_t key)
{
(void)pthread_key_delete(key);
}