summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibC/bits/pthread_forward.h
blob: 3480383db2f41ecbb6572a49b4b79845deab8066 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
 * Copyright (c) 2021, Gunnar Beutner <gunnar@beutner.name>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <LibPthread/pthread.h>

struct PthreadFunctions {
    int (*pthread_mutex_trylock)(pthread_mutex_t* mutex);
    int (*pthread_mutex_destroy)(pthread_mutex_t*);

    int (*pthread_mutexattr_init)(pthread_mutexattr_t*);
    int (*pthread_mutexattr_settype)(pthread_mutexattr_t*, int);
    int (*pthread_mutexattr_destroy)(pthread_mutexattr_t*);

    int (*pthread_once)(pthread_once_t*, void (*)(void));

    int (*pthread_cond_broadcast)(pthread_cond_t*);
    int (*pthread_cond_init)(pthread_cond_t*, pthread_condattr_t const*);
    int (*pthread_cond_signal)(pthread_cond_t*);
    int (*pthread_cond_wait)(pthread_cond_t*, pthread_mutex_t*);
    int (*pthread_cond_destroy)(pthread_cond_t*);
    int (*pthread_cond_timedwait)(pthread_cond_t*, pthread_mutex_t*, const struct timespec*);
};

void __init_pthread_forward(PthreadFunctions);