diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-05-21 01:00:41 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-05-21 01:00:41 +0200 |
commit | f240aacb412172f9c228653674b13d41279bebc8 (patch) | |
tree | cf4e53d75874f9694e06a65e5d51e5d77acfee15 /lib/sys_file.in.h | |
parent | fc76c08d872f816a075de0a9096006966f00a666 (diff) | |
download | guile-f240aacb412172f9c228653674b13d41279bebc8.tar.gz |
Add Gnulib portability modules; update Gnulib files.
* m4/gnulib-cache.m4 (gl_MODULES): Add `flock' (provides flock(2)
declaration and implementation), `fpieee' (fixes floating point
behavior on Alpha and SH), `stdlib' (provides an unsetenv(3)
declaration, among others), `putenv' (provides a putenv(3) declaration
and implementation with the semantics we need).
Diffstat (limited to 'lib/sys_file.in.h')
-rw-r--r-- | lib/sys_file.in.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/lib/sys_file.in.h b/lib/sys_file.in.h new file mode 100644 index 000000000..52ef46619 --- /dev/null +++ b/lib/sys_file.in.h @@ -0,0 +1,60 @@ +/* Provide a more complete sys/file.h. + + Copyright (C) 2007-2008 Free Software Foundation, Inc. + + This program 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, or (at your option) + any later version. + + This program 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 this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Written by Richard W.M. Jones. */ +#ifndef _GL_SYS_FILE_H + +# if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +# endif + +/* The include_next requires a split double-inclusion guard. */ +# if @HAVE_SYS_FILE_H@ +# @INCLUDE_NEXT@ @NEXT_SYS_FILE_H@ +# endif + +#ifndef _GL_SYS_FILE_H +#define _GL_SYS_FILE_H + + +#if @GNULIB_FLOCK@ +/* Apply or remove advisory locks on an open file. + Return 0 if successful, otherwise -1 and errno set. */ +# if !@HAVE_FLOCK@ +extern int flock (int fd, int operation); + +/* Operations for the 'flock' call (same as Linux kernel constants). */ +#define LOCK_SH 1 /* Shared lock. */ +#define LOCK_EX 2 /* Exclusive lock. */ +#define LOCK_UN 8 /* Unlock. */ + +/* Can be OR'd in to one of the above. */ +#define LOCK_NB 4 /* Don't block when locking. */ + +# endif +#elif defined GNULIB_POSIXCHECK +# undef flock +# define flock(fd,op) \ + (GL_LINK_WARNING ("flock is unportable - " \ + "use gnulib module flock for portability"), \ + flock ((fd), (op))) +#endif + + +#endif /* _GL_SYS_FILE_H */ +#endif /* _GL_SYS_FILE_H */ |