about summary refs log tree commit diff
path: root/sysdeps/pthread/sem_routines.h
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-02-03 13:50:21 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-02-08 14:10:42 -0300
commitda4aea0b5e60ec2351367b0facee24e6035a7129 (patch)
tree7892242d802abdadf07a9e27c7af8292940630a3 /sysdeps/pthread/sem_routines.h
parente9fed2438a1ff475821864f906286dc58907f06b (diff)
downloadglibc-da4aea0b5e60ec2351367b0facee24e6035a7129.tar.gz
glibc-da4aea0b5e60ec2351367b0facee24e6035a7129.tar.xz
glibc-da4aea0b5e60ec2351367b0facee24e6035a7129.zip
pthread: Refactor semaphore code
The internal semaphore list code is moved to a specific file,
sem_routine.c, and the internal usage is simplified to only two
functions (one to insert a new semaphore and one to remove it
from the internal list).  There is no need to expose the
internal locking, neither how the semaphore mapping is implemented.

No functional or semantic change is expected, tested on
x86_64-linux-gnu.
Diffstat (limited to 'sysdeps/pthread/sem_routines.h')
-rw-r--r--sysdeps/pthread/sem_routines.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/sysdeps/pthread/sem_routines.h b/sysdeps/pthread/sem_routines.h
new file mode 100644
index 0000000000..25d3e880ea
--- /dev/null
+++ b/sysdeps/pthread/sem_routines.h
@@ -0,0 +1,27 @@
+/* Helper code for POSIX semaphore implementation.
+   Copyright (C) 2021 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _SEM_ROUTINES_H
+#define _SEM_ROUTINES_H
+
+sem_t * __sem_check_add_mapping (const char *name, int fd, sem_t *existing)
+  attribute_hidden;
+
+bool __sem_remove_mapping (sem_t *sem) attribute_hidden;
+
+#endif