File: 9p-util-generic.c

package info (click to toggle)
qemu 1%3A10.0.3%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 413,680 kB
  • sloc: ansic: 4,733,433; pascal: 114,769; python: 105,506; asm: 68,431; sh: 52,881; makefile: 27,469; perl: 18,778; cpp: 11,435; xml: 3,404; objc: 2,877; yacc: 2,505; php: 1,299; tcl: 1,296; lex: 1,110; sql: 71; awk: 43; sed: 35; javascript: 7
file content (50 lines) | stat: -rw-r--r-- 1,676 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* SPDX-License-Identifier: GPL-2.0-or-later */

#include "qemu/osdep.h"
#include "9p-util.h"
#include <glib/gstrfuncs.h>

char *qemu_open_flags_tostr(int flags)
{
    int acc = flags & O_ACCMODE;
    return g_strconcat(
        (acc == O_WRONLY) ? "WRONLY" : (acc == O_RDONLY) ? "RDONLY" : "RDWR",
        (flags & O_CREAT) ? "|CREAT" : "",
        (flags & O_EXCL) ? "|EXCL" : "",
        (flags & O_NOCTTY) ? "|NOCTTY" : "",
        (flags & O_TRUNC) ? "|TRUNC" : "",
        (flags & O_APPEND) ? "|APPEND" : "",
        (flags & O_NONBLOCK) ? "|NONBLOCK" : "",
        (flags & O_DSYNC) ? "|DSYNC" : "",
        #ifdef O_DIRECT
        (flags & O_DIRECT) ? "|DIRECT" : "",
        #endif
        (flags & O_LARGEFILE) ? "|LARGEFILE" : "",
        (flags & O_DIRECTORY) ? "|DIRECTORY" : "",
        (flags & O_NOFOLLOW) ? "|NOFOLLOW" : "",
        #ifdef O_NOATIME
        (flags & O_NOATIME) ? "|NOATIME" : "",
        #endif
        #ifdef O_CLOEXEC
        (flags & O_CLOEXEC) ? "|CLOEXEC" : "",
        #endif
        #ifdef __O_SYNC
        (flags & __O_SYNC) ? "|SYNC" : "",
        #else
        ((flags & O_SYNC) == O_SYNC) ? "|SYNC" : "",
        #endif
        #ifdef O_PATH
        (flags & O_PATH) ? "|PATH" : "",
        #endif
        #ifdef __O_TMPFILE
        (flags & __O_TMPFILE) ? "|TMPFILE" : "",
        #elif defined(O_TMPFILE)
        ((flags & O_TMPFILE) == O_TMPFILE) ? "|TMPFILE" : "",
        #endif
        /* O_NDELAY is usually just an alias of O_NONBLOCK */
        #if defined(O_NDELAY) && O_NDELAY != O_NONBLOCK
        (flags & O_NDELAY) ? "|NDELAY" : "",
        #endif
        NULL /* always last (required NULL termination) */
    );
}