Update from db-2.3.12.
[kopensolaris-gnu/glibc.git] / db2 / os / os_oflags.c
1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 1997
5  *      Sleepycat Software.  All rights reserved.
6  */
7
8 #include "config.h"
9
10 #ifndef lint
11 static const char sccsid[] = "@(#)os_oflags.c   10.2 (Sleepycat) 10/24/97";
12 #endif /* not lint */
13
14 #ifndef NO_SYSTEM_INCLUDES
15 #include <sys/types.h>
16
17 #include <fcntl.h>
18 #endif
19
20 #include "db_int.h"
21
22 /*
23  * __db_oflags --
24  *      Convert open(2) flags to DB flags.
25  *
26  * PUBLIC: int __db_oflags __P((int));
27  */
28 int
29 __db_oflags(oflags)
30         int oflags;
31 {
32         int dbflags;
33
34         /*
35          * XXX
36          * Convert POSIX 1003.1 open(2) flags to DB flags.  Not an exact
37          * science as most POSIX implementations don't have a flag value
38          * for O_RDONLY, it's simply the lack of a write flag.
39          */
40         dbflags = 0;
41         if (oflags & O_CREAT)
42                 dbflags |= DB_CREATE;
43         if (!(oflags & (O_RDWR | O_WRONLY)) || oflags & O_RDONLY)
44                 dbflags |= DB_RDONLY;
45         if (oflags & O_TRUNC)
46                 dbflags |= DB_TRUNCATE;
47         return (dbflags);
48 }