mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 14:00:30 +00:00
2001-06-15 Roland McGrath <roland@frob.com>
* rt/Makefile (aio-routines, clock-routines, timer-routines): New variables, broken out of librt-routines. (librt-routines): Set using those. (extra-libs, extra-libc-others, tests): Set these unconditionally. (distribute): No need for $(librt-map) or $(librt-routines:=.c) here. * sysdeps/generic/aio_fsync.c: New file. * sysdeps/generic/aio_misc.c: New file. * sysdeps/generic/aio_write.c: New file. * sysdeps/generic/aio_write64.c: New file. * sysdeps/generic/aio_read64.c: New file. * sysdeps/generic/aio_read.c: New file. * sysdeps/generic/aio_notify.c: New file. * sysdeps/generic/lio_listio64.c: New file. * sysdeps/generic/lio_listio.c: New file. * sysdeps/generic/aio_cancel.c: New file. * sysdeps/generic/aio_misc.h: New file. * sysdeps/generic/aio_suspend.c: New file. * rt/aio_cancel.c: Moved to ... * sysdeps/pthread/aio_cancel.c: ... here. * rt/aio_fsync.c: Moved to ... * sysdeps/pthread/aio_fsync.c: ... here. * rt/aio_misc.c: Moved to ... * sysdeps/pthread/aio_misc.c: ... here. * rt/aio_misc.h: Moved to ... * sysdeps/pthread/aio_misc.h: ... here. * rt/aio_notify.c: Moved to ... * sysdeps/pthread/aio_notify.c: ... here. * rt/aio_read.c: Moved to ... * sysdeps/pthread/aio_read.c: ... here. * rt/aio_read64.c: Moved to ... * sysdeps/pthread/aio_read64.c: ... here. * rt/aio_suspend.c: Moved to ... * sysdeps/pthread/aio_suspend.c: ... here. * rt/aio_write.c: Moved to ... * sysdeps/pthread/aio_write.c: ... here. * rt/aio_write64.c: Moved to ... * sysdeps/pthread/aio_write64.c: ... here. * rt/lio_listio.c: Moved to ... * sysdeps/pthread/lio_listio.c: ... here. * rt/lio_listio64.c: Moved to ... * sysdeps/pthread/lio_listio64.c: ... here.
This commit is contained in:
parent
636ccfc8fb
commit
5ec73bb91f
30
rt/Makefile
30
rt/Makefile
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1997,98,99,2000,01 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
|
||||
@ -23,30 +23,28 @@ subdir := rt
|
||||
|
||||
headers := aio.h
|
||||
|
||||
librt-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \
|
||||
aio-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \
|
||||
aio_read64 aio_return aio_suspend aio_write \
|
||||
aio_write64 lio_listio lio_listio64 aio_sigqueue \
|
||||
aio_notify get_clockfreq clock_getcpuclockid \
|
||||
aio_notify
|
||||
clock-routines := get_clockfreq clock_getcpuclockid \
|
||||
clock_getres clock_gettime clock_settime \
|
||||
clock_nanosleep \
|
||||
timer_create timer_delete timer_getoverr \
|
||||
timer_gettime timer_settime \
|
||||
shm_open shm_unlink
|
||||
clock_nanosleep
|
||||
timer-routines := timer_create timer_delete timer_getoverr \
|
||||
timer_gettime timer_settime
|
||||
shm-routines := shm_open shm_unlink
|
||||
|
||||
# Make sure that everything is distributed independent of configuration.
|
||||
distribute := aio_misc.h $(librt-routines:=.c) $(librt-map)
|
||||
librt-routines = $(aio-routines) \
|
||||
$(clock-routines) $(timer-routines) \
|
||||
$(shm-routines)
|
||||
|
||||
include ../Makeconfig
|
||||
|
||||
ifeq ($(have-thread-library),yes)
|
||||
|
||||
tests := tst-aio tst-aio64 tst-clock tst-shm tst-timer tst-aio2 tst-aio3 \
|
||||
tst-aio4 tst-aio5 tst-aio6
|
||||
tests := tst-shm tst-clock tst-timer \
|
||||
tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6
|
||||
|
||||
extra-libs := librt
|
||||
extra-libs-others := $(extra-libs)
|
||||
|
||||
endif
|
||||
distribute := aio_misc.h
|
||||
|
||||
include ../Rules
|
||||
|
||||
|
44
sysdeps/generic/aio_cancel.c
Normal file
44
sysdeps/generic/aio_cancel.c
Normal file
@ -0,0 +1,44 @@
|
||||
/* Cancel requests associated with given file descriptor. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* We use an UGLY hack to prevent gcc from finding us cheating. The
|
||||
implementation of aio_cancel and aio_cancel64 are identical and so
|
||||
we want to avoid code duplication by using aliases. But gcc sees
|
||||
the different parameter lists and prints a warning. We define here
|
||||
a function so that aio_cancel64 has no prototype. */
|
||||
#define aio_cancel64 XXX
|
||||
#include <aio.h>
|
||||
/* And undo the hack. */
|
||||
#undef aio_cancel64
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
int
|
||||
aio_cancel (int fildes, struct aiocb *aiocbp)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
weak_alias (aio_cancel, aio_cancel64)
|
||||
|
||||
stub_warning (aio_cancel)
|
||||
stub_warning (aio_cancel64)
|
||||
#include <stub-tag.h>
|
51
sysdeps/generic/aio_fsync.c
Normal file
51
sysdeps/generic/aio_fsync.c
Normal file
@ -0,0 +1,51 @@
|
||||
/* Synchronize I/O in given file descriptor. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* We use an UGLY hack to prevent gcc from finding us cheating. The
|
||||
implementation of aio_fsync and aio_fsync64 are identical and so
|
||||
we want to avoid code duplication by using aliases. But gcc sees
|
||||
the different parameter lists and prints a warning. We define here
|
||||
a function so that aio_fsync64 has no prototype. */
|
||||
#define aio_fsync64 XXX
|
||||
#include <aio.h>
|
||||
/* And undo the hack. */
|
||||
#undef aio_fsync64
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
int
|
||||
aio_fsync (int op, struct aiocb *aiocbp)
|
||||
{
|
||||
if (op != O_SYNC && op != O_DSYNC)
|
||||
{
|
||||
__set_errno (EINVAL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
weak_alias (aio_fsync, aio_fsync64)
|
||||
|
||||
stub_warning (aio_fsync)
|
||||
stub_warning (aio_fsync64)
|
||||
#include <stub-tag.h>
|
29
sysdeps/generic/aio_misc.c
Normal file
29
sysdeps/generic/aio_misc.c
Normal file
@ -0,0 +1,29 @@
|
||||
/* Handle general operations. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <aio.h>
|
||||
#include <aio_misc.h>
|
||||
|
||||
/* This file is for internal code needed by the aio_* implementation. */
|
||||
|
||||
void
|
||||
__aio_init (const struct aioinit *init)
|
||||
{
|
||||
}
|
||||
weak_alias (__aio_init, aio_init)
|
48
sysdeps/generic/aio_misc.h
Normal file
48
sysdeps/generic/aio_misc.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* Internal declarations for <aio.h> functions implementation. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _AIO_MISC_H
|
||||
#define _AIO_MISC_H 1
|
||||
|
||||
#include <aio.h>
|
||||
|
||||
|
||||
/* Extend the operation enum. */
|
||||
enum
|
||||
{
|
||||
LIO_DSYNC = LIO_READ + 1,
|
||||
LIO_SYNC,
|
||||
LIO_READ64 = LIO_READ | 128,
|
||||
LIO_WRITE64 = LIO_WRITE | 128
|
||||
};
|
||||
|
||||
/* Union of the two request types. */
|
||||
typedef union
|
||||
{
|
||||
struct aiocb aiocb;
|
||||
struct aiocb64 aiocb64;
|
||||
} aiocb_union;
|
||||
|
||||
|
||||
/* Send the signal. */
|
||||
extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
|
||||
internal_function;
|
||||
|
||||
|
||||
#endif /* aio_misc.h */
|
24
sysdeps/generic/aio_notify.c
Normal file
24
sysdeps/generic/aio_notify.c
Normal file
@ -0,0 +1,24 @@
|
||||
/* Notify initiator of AIO request. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <aio.h>
|
||||
#include <aio_misc.h>
|
||||
|
||||
/* This file contains only internal functions used by
|
||||
the particular aio_* implementation code. */
|
36
sysdeps/generic/aio_read.c
Normal file
36
sysdeps/generic/aio_read.c
Normal file
@ -0,0 +1,36 @@
|
||||
/* Asynchronous read. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <aio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef BE_AIO64
|
||||
#define aiocb aiocb64
|
||||
#define aio_read aio_read64
|
||||
#endif
|
||||
|
||||
int
|
||||
aio_read (struct aiocb *aiocbp)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
stub_warning (aio_read)
|
||||
#include <stub-tag.h>
|
2
sysdeps/generic/aio_read64.c
Normal file
2
sysdeps/generic/aio_read64.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define BE_AIO64
|
||||
#include "aio_read.c"
|
46
sysdeps/generic/aio_suspend.c
Normal file
46
sysdeps/generic/aio_suspend.c
Normal file
@ -0,0 +1,46 @@
|
||||
/* Suspend until termination of a requests. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* We use an UGLY hack to prevent gcc from finding us cheating. The
|
||||
implementations of aio_suspend and aio_suspend64 are identical and so
|
||||
we want to avoid code duplication by using aliases. But gcc sees
|
||||
the different parameter lists and prints a warning. We define here
|
||||
a function so that aio_suspend64 has no prototype. */
|
||||
#define aio_suspend64 XXX
|
||||
#include <aio.h>
|
||||
/* And undo the hack. */
|
||||
#undef aio_suspend64
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
|
||||
int
|
||||
aio_suspend (const struct aiocb *const list[], int nent,
|
||||
const struct timespec *timeout)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
weak_alias (aio_suspend, aio_suspend64)
|
||||
|
||||
stub_warning (aio_suspend)
|
||||
stub_warning (aio_suspend64)
|
||||
#include <stub-tag.h>
|
36
sysdeps/generic/aio_write.c
Normal file
36
sysdeps/generic/aio_write.c
Normal file
@ -0,0 +1,36 @@
|
||||
/* Asynchronous write. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <aio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef BE_AIO64
|
||||
#define aiocb aiocb64
|
||||
#define aio_write aio_write64
|
||||
#endif
|
||||
|
||||
int
|
||||
aio_write (struct aiocb *aiocbp)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
stub_warning (aio_write)
|
||||
#include <stub-tag.h>
|
2
sysdeps/generic/aio_write64.c
Normal file
2
sysdeps/generic/aio_write64.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define BE_AIO64
|
||||
#include "aio_write.c"
|
42
sysdeps/generic/lio_listio.c
Normal file
42
sysdeps/generic/lio_listio.c
Normal file
@ -0,0 +1,42 @@
|
||||
/* Enqueue a list of read or write requests. Stub version.
|
||||
Copyright (C) 2001 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <aio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef BE_AIO64
|
||||
#define lio_listio lio_listio64
|
||||
#define aiocb aiocb64
|
||||
#define aio_read aio_read64
|
||||
#define aio_write aio_write64
|
||||
#define aio_suspend aio_suspend64
|
||||
#endif
|
||||
|
||||
|
||||
int
|
||||
lio_listio (int mode,
|
||||
struct aiocb *const list[], int nent,
|
||||
struct sigevent *sig)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
stub_warning (lio_listio)
|
||||
#include <stub-tag.h>
|
2
sysdeps/generic/lio_listio64.c
Normal file
2
sysdeps/generic/lio_listio64.c
Normal file
@ -0,0 +1,2 @@
|
||||
#define BE_AIO64
|
||||
#include "lio_listio.c"
|
Loading…
Reference in New Issue
Block a user