diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-04-13 02:15:43 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-04-13 02:15:43 +0000 |
commit | 1b82c6c77d566ce3977c83b7ca47f09aac31e525 (patch) | |
tree | 27c7a0846d386151845a01a553d0dcfb16691bfb /rt/tst-mqueue.h | |
parent | 381a0c26d73e0f074c962e0ab53b99a6c327066d (diff) | |
download | glibc-1b82c6c77d566ce3977c83b7ca47f09aac31e525.tar glibc-1b82c6c77d566ce3977c83b7ca47f09aac31e525.tar.gz glibc-1b82c6c77d566ce3977c83b7ca47f09aac31e525.tar.bz2 glibc-1b82c6c77d566ce3977c83b7ca47f09aac31e525.zip |
Update.
2004-04-08 Ulrich Drepper <drepper@redhat.com>
* rt/tst-mqueue3.c: New file.
* rt/Makefile (tests): Add tst-mqueue3.
2004-04-08 Jakub Jelinek <jakub@redhat.com>
* rt/tst-mqueue1.c: New file.
* rt/tst-mqueue2.c: New file.
* rt/tst-mqueue4.c: New file.
* rt/Makefile (tests): Add tst-mqueue1, tst-mqueue2, tst-mqueue4.
* rt/Versions (librt): Add mq_*@@GLIBC_2.3.4.
* rt/Makefile (headers): Add mqueue.h and bits/mqueue.h.
(mq-routines): Set.
(librt-routines): Use it.
* rt/mqueue.h: New file.
* include/mqueue.h: New file.
* sysdeps/generic/bits/mqueue.h: New file.
* sysdeps/generic/mq_setattr.c: New file.
* sysdeps/generic/mq_getattr.c: New file.
* sysdeps/generic/mq_notify.c: New file.
* sysdeps/generic/mq_close.c: New file.
* sysdeps/generic/mq_send.c: New file.
* sysdeps/generic/mq_unlink.c: New file.
* sysdeps/generic/mq_receive.c: New file.
* sysdeps/generic/mq_timedreceive.c: New file.
* sysdeps/generic/mq_timedsend.c: New file.
* sysdeps/generic/mq_open.c: New file.
* sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
* sysdeps/unix/sysv/linux/bits/mqueue.h: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add mq_timedsend,
mq_timedreceive and mq_setattr.
* sysdeps/unix/sysv/linux/mq_getattr.c: New file.
* sysdeps/unix/sysv/linux/mq_notify.c: New file.
* sysdeps/unix/sysv/linux/mq_close.c: New file.
* sysdeps/unix/sysv/linux/mq_send.c: New file.
* sysdeps/unix/sysv/linux/mq_unlink.c: New file.
* sysdeps/unix/sysv/linux/mq_receive.c: New file.
* sysdeps/unix/sysv/linux/mq_open.c: New file.
2004-04-09 Thorsten Kukuk <kukuk@suse.de>
* sysdeps/s390/ffs.c: Don't add ffsl weak alias on s390x.
2004-04-09 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c: New file.
Diffstat (limited to 'rt/tst-mqueue.h')
-rw-r--r-- | rt/tst-mqueue.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/rt/tst-mqueue.h b/rt/tst-mqueue.h new file mode 100644 index 0000000000..3659795a1b --- /dev/null +++ b/rt/tst-mqueue.h @@ -0,0 +1,62 @@ +/* Common code for message queue passing tests. + Copyright (C) 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2004. + + 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <mqueue.h> +#include <search.h> +#include <stdlib.h> +#include <string.h> + +/* List of temporary files. */ +struct temp_mq_list +{ + struct qelem q; + char name[1]; +} *temp_mq_list; + +/* Add temporary files in list. */ +static void +__attribute__ ((unused)) +add_temp_mq (const char *name) +{ + size_t len = strlen (name); + struct temp_mq_list *newp + = (struct temp_mq_list *) calloc (sizeof (*newp) + len, 1); + if (newp != NULL) + { + memcpy (newp->name, name, len + 1); + if (temp_mq_list == NULL) + temp_mq_list = (struct temp_mq_list *) &newp->q; + else + insque (newp, temp_mq_list); + } +} + +/* Delete all temporary files. */ +static void +delete_temp_mqs (void) +{ + while (temp_mq_list != NULL) + { + mq_unlink (temp_mq_list->name); + temp_mq_list = (struct temp_mq_list *) temp_mq_list->q.q_forw; + } +} + +#define CLEANUP_HANDLER delete_temp_mqs () |