Back to index

glibc  2.9
cthreads.c
Go to the documentation of this file.
00001 /* Copyright (C) 1997 Free Software Foundation, Inc.
00002    This file is part of the GNU C Library.
00003 
00004    The GNU C Library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Lesser General Public
00006    License as published by the Free Software Foundation; either
00007    version 2.1 of the License, or (at your option) any later version.
00008 
00009    The GNU C Library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Lesser General Public License for more details.
00013 
00014    You should have received a copy of the GNU Lesser General Public
00015    License along with the GNU C Library; if not, write to the Free
00016    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00017    02111-1307 USA.  */
00018 
00019 #include <bits/libc-lock.h>
00020 #include <errno.h>
00021 #include <stdlib.h>
00022 
00023 /* Placeholder for key creation routine from Hurd cthreads library.  */
00024 int
00025 weak_function
00026 cthread_keycreate (key)
00027      cthread_key_t *key;
00028 {
00029   __set_errno (ENOSYS);
00030  *key = -1;
00031   return -1;
00032 }
00033 
00034 /* Placeholder for key retrieval routine from Hurd cthreads library.  */
00035 int
00036 weak_function
00037 cthread_getspecific (key, pval)
00038      cthread_key_t key;
00039      void **pval;
00040 {
00041   *pval = NULL;
00042   __set_errno (ENOSYS);
00043   return -1;
00044 }
00045 
00046 /* Placeholder for key setting routine from Hurd cthreads library.  */
00047 int
00048 weak_function
00049 cthread_setspecific (key, val)
00050      cthread_key_t key;
00051      void *val;
00052 {
00053   __set_errno (ENOSYS);
00054   return -1;
00055 }
00056 
00057 /* Call cthread_getspecific which gets a pointer to the return value instead
00058    of just returning it.  */
00059 void *
00060 __libc_getspecific (key)
00061      cthread_key_t key;
00062 {
00063   void *val;
00064   cthread_getspecific (key, &val);
00065   return val;
00066 }