* Implemented flock() semantics to the advisory locking backend. Not tested

(must also compare to BSD; I've looked at their sources, but I might have
  missed something).
* Added sys/file.h and the flock() system call.
* common_fcntl() could forget to put back the file descriptor on some error
  conditions (I guess we should introduce and use a DescriptorGetter class).
* Cleaned up fcntl.h, moved the BSD extensions S_IREAD and S_IWRITE to
  sys/stat.h where they belong, and added the missing S_IEXEC to them.
* Added some more comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23836 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-02-03 15:37:31 +00:00
parent e5bc2a9e7a
commit a32a4683ff
8 changed files with 162 additions and 36 deletions
+2 -11
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2007, Haiku Inc. All Rights Reserved.
* Copyright 2002-2008, Haiku Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _FCNTL_H
@@ -74,15 +74,6 @@ struct flock {
pid_t l_pid;
};
/* for use with flock() - TODO: this should be moved to sys/file.h *if* we'll support flock() one day */
#define LOCK_SH 0x01 /* shared file lock */
#define LOCK_EX 0x02 /* exclusive file lock */
#define LOCK_NB 0x04 /* don't block when locking */
#define LOCK_UN 0x08 /* unlock file */
#define S_IREAD 0x0100 /* owner may read */
#define S_IWRITE 0x0080 /* owner may write */
#ifdef __cplusplus
extern "C" {
@@ -99,4 +90,4 @@ extern int fcntl(int fd, int op, ...);
}
#endif
#endif /* _FCNTL_H */
#endif /* _FCNTL_H */