diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /liblock/lockflock.c | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'liblock/lockflock.c')
| -rw-r--r-- | liblock/lockflock.c | 35 | 
1 files changed, 35 insertions, 0 deletions
| diff --git a/liblock/lockflock.c b/liblock/lockflock.c new file mode 100644 index 0000000..0e53aa3 --- /dev/null +++ b/liblock/lockflock.c @@ -0,0 +1,35 @@ +/* +** Copyright 1998 - 1999 Double Precision, Inc.  See COPYING for +** distribution information. +*/ + +#if	HAVE_CONFIG_H +#include	"config.h" +#endif +#include	<sys/types.h> +#if	HAVE_FCNTL_H +#include	<fcntl.h> +#endif +#if	HAVE_SYS_FCNTL_H +#include	<sys/fcntl.h> +#endif +#if	HAVE_SYS_FILE_H +#include	<sys/file.h> +#endif +#include	<errno.h> +#include	"liblock.h" + +int	ll_lockfd(int fd, int ltype, LL_OFFSET_TYPE start, LL_OFFSET_TYPE len) +{ +	if (start || len +		|| (ltype & ll_whence_curpos) +		|| (ltype & ll_whence_end)) +	{ +		errno=EINVAL; +		return (-1); +	} + +	return (flock(fd, ltype & ll_unlock ? LOCK_UN: +		(ltype & ll_writelock ? LOCK_EX:LOCK_SH) | +		(ltype & ll_wait ? 0:LOCK_NB))); +} | 
