mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 08:14:58 +00:00

This helps ensure random pointers are not passed in as semaphores, but more importantly once named semaphores are implemented, this will ensure that random files are not used as semaphores.
35 lines
679 B
C
35 lines
679 B
C
/*
|
|
* Copyright (c) 2021, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <limits.h>
|
|
#include <pthread.h>
|
|
#include <sys/cdefs.h>
|
|
#include <sys/types.h>
|
|
|
|
__BEGIN_DECLS
|
|
|
|
typedef struct {
|
|
uint32_t magic;
|
|
uint32_t value;
|
|
} sem_t;
|
|
|
|
int sem_close(sem_t*);
|
|
int sem_destroy(sem_t*);
|
|
int sem_getvalue(sem_t*, int*);
|
|
int sem_init(sem_t*, int, unsigned int);
|
|
sem_t* sem_open(char const*, int, ...);
|
|
int sem_post(sem_t*);
|
|
int sem_trywait(sem_t*);
|
|
int sem_unlink(char const*);
|
|
int sem_wait(sem_t*);
|
|
int sem_timedwait(sem_t*, const struct timespec* abstime);
|
|
|
|
#define SEM_FAILED ((sem_t*)0)
|
|
#define SEM_VALUE_MAX INT_MAX
|
|
|
|
__END_DECLS
|