1 /* Copyright (C) 2002, 2003, 2006, 2007 Free Software Foundation, Inc. 2 This file is part of the GNU C Library. 3 Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <http://www.gnu.org/licenses/>. */ 18 19 #include <semaphore.h> 20 #include "pthreadP.h" 21 22 23 /* Mount point of the shared memory filesystem. */ 24 struct mountpoint_info 25 { 26 char *dir; 27 size_t dirlen; 28 }; 29 30 /* Keeping track of currently used mappings. */ 31 struct inuse_sem 32 { 33 dev_t dev; 34 ino_t ino; 35 int refcnt; 36 sem_t *sem; 37 char name[0]; 38 }; 39 40 41 /* Variables used in multiple interfaces. */ 42 extern struct mountpoint_info mountpoint attribute_hidden; 43 44 extern pthread_once_t __namedsem_once attribute_hidden; 45 46 /* The search tree for existing mappings. */ 47 extern void *__sem_mappings attribute_hidden; 48 49 /* Lock to protect the search tree. */ 50 extern int __sem_mappings_lock attribute_hidden; 51 52 53 /* Initializer for mountpoint. */ 54 extern void __where_is_shmfs (void) attribute_hidden; 55 56 /* Comparison function for search in tree with existing mappings. */ 57 extern int __sem_search (const void *a, const void *b) attribute_hidden; 58