gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
freebsd.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Ruslan Bukin <br@bsdpad.com>
3  * All rights reserved.
4  *
5  * This software was developed by the University of Cambridge Computer
6  * Laboratory as part of the CTSRD Project, with support from the UK Higher
7  * Education Innovation Fund (HEIF).
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are
11  * met: redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer;
13  * redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution;
16  * neither the name of the copyright holders nor the names of its
17  * contributors may be used to endorse or promote products derived from
18  * this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
34 
35 #include <fcntl.h>
36 
37 // open(2) flags translation table
39  { ArmFreebsd32::TGT_O_RDONLY, O_RDONLY },
40  { ArmFreebsd32::TGT_O_WRONLY, O_WRONLY },
41  { ArmFreebsd32::TGT_O_RDWR, O_RDWR },
42  { ArmFreebsd32::TGT_O_CREAT, O_CREAT },
43  { ArmFreebsd32::TGT_O_EXCL, O_EXCL },
44  { ArmFreebsd32::TGT_O_NOCTTY, O_NOCTTY },
45  { ArmFreebsd32::TGT_O_TRUNC, O_TRUNC },
46  { ArmFreebsd32::TGT_O_APPEND, O_APPEND },
47  { ArmFreebsd32::TGT_O_NONBLOCK, O_NONBLOCK },
48  { ArmFreebsd32::TGT_O_SYNC, O_SYNC },
49  { ArmFreebsd32::TGT_FASYNC, FASYNC },
50 #ifdef O_DIRECT
51  { ArmFreebsd32::TGT_O_DIRECT, O_DIRECT },
52 #endif
53  { ArmFreebsd32::TGT_O_DIRECTORY, O_DIRECTORY },
54  { ArmFreebsd32::TGT_O_NOFOLLOW, O_NOFOLLOW },
55 };
56 
58  sizeof(ArmFreebsd32::openFlagTable[0]);
59 
60 // open(2) flags translation table
62  { ArmFreebsd64::TGT_O_RDONLY, O_RDONLY },
63  { ArmFreebsd64::TGT_O_WRONLY, O_WRONLY },
64  { ArmFreebsd64::TGT_O_RDWR, O_RDWR },
65  { ArmFreebsd64::TGT_O_CREAT, O_CREAT },
66  { ArmFreebsd64::TGT_O_EXCL, O_EXCL },
67  { ArmFreebsd64::TGT_O_NOCTTY, O_NOCTTY },
68  { ArmFreebsd64::TGT_O_TRUNC, O_TRUNC },
69  { ArmFreebsd64::TGT_O_APPEND, O_APPEND },
70  { ArmFreebsd64::TGT_O_NONBLOCK, O_NONBLOCK },
71  { ArmFreebsd64::TGT_O_SYNC, O_SYNC },
72  { ArmFreebsd64::TGT_FASYNC, FASYNC },
73 #ifdef O_DIRECT
74  { ArmFreebsd64::TGT_O_DIRECT, O_DIRECT },
75 #endif
76  { ArmFreebsd64::TGT_O_DIRECTORY, O_DIRECTORY },
77  { ArmFreebsd64::TGT_O_NOFOLLOW, O_NOFOLLOW },
78 };
79 
81  sizeof(ArmFreebsd64::openFlagTable[0]);
82 
static const int TGT_FASYNC
FASYNC.
Definition: freebsd.hh:69
static const int TGT_O_RDWR
O_RDWR.
Definition: freebsd.hh:61
static const int TGT_O_DIRECT
O_DIRECT.
Definition: freebsd.hh:70
static const int TGT_O_NONBLOCK
O_NONBLOCK.
Definition: freebsd.hh:224
static const int TGT_O_CREAT
O_CREAT.
Definition: freebsd.hh:219
static const int TGT_O_TRUNC
O_TRUNC.
Definition: freebsd.hh:65
static SyscallFlagTransTable openFlagTable[]
This table maps the target open() flags to the corresponding host open() flags.
Definition: freebsd.hh:44
static const int TGT_O_CREAT
O_CREAT.
Definition: freebsd.hh:62
static const int TGT_O_RDONLY
open(2) flag values.
Definition: freebsd.hh:59
static SyscallFlagTransTable openFlagTable[]
This table maps the target open() flags to the corresponding host open() flags.
Definition: freebsd.hh:201
static const int NUM_OPEN_FLAGS
Number of entries in openFlagTable[].
Definition: freebsd.hh:204
static const int NUM_OPEN_FLAGS
Number of entries in openFlagTable[].
Definition: freebsd.hh:47
static const int TGT_O_SYNC
O_SYNC.
Definition: freebsd.hh:68
static const int TGT_O_DIRECT
O_DIRECT.
Definition: freebsd.hh:227
static const int TGT_O_NOFOLLOW
O_NOFOLLOW.
Definition: freebsd.hh:229
static const int TGT_O_DIRECTORY
O_DIRECTORY.
Definition: freebsd.hh:71
static const int TGT_O_APPEND
O_APPEND.
Definition: freebsd.hh:66
static const int TGT_O_NOCTTY
O_NOCTTY.
Definition: freebsd.hh:64
static const int TGT_O_TRUNC
O_TRUNC.
Definition: freebsd.hh:222
static const int TGT_O_DIRECTORY
O_DIRECTORY.
Definition: freebsd.hh:228
static const int TGT_O_NONBLOCK
O_NONBLOCK.
Definition: freebsd.hh:67
static const int TGT_O_WRONLY
O_WRONLY.
Definition: freebsd.hh:60
This struct is used to build target-OS-dependent tables that map the target's flags to the host's fla...
static const int TGT_O_RDONLY
open(2) flag values.
Definition: freebsd.hh:216
static const int TGT_O_RDWR
O_RDWR.
Definition: freebsd.hh:218
static const int TGT_O_APPEND
O_APPEND.
Definition: freebsd.hh:223
static const int TGT_FASYNC
FASYNC.
Definition: freebsd.hh:226
static const int TGT_O_NOCTTY
O_NOCTTY.
Definition: freebsd.hh:221
static const int TGT_O_EXCL
O_EXCL.
Definition: freebsd.hh:220
static const int TGT_O_SYNC
O_SYNC.
Definition: freebsd.hh:225
static const int TGT_O_WRONLY
O_WRONLY.
Definition: freebsd.hh:217
static const int TGT_O_NOFOLLOW
O_NOFOLLOW.
Definition: freebsd.hh:72
static const int TGT_O_EXCL
O_EXCL.
Definition: freebsd.hh:63

Generated on Fri Jun 9 2017 13:03:37 for gem5 by doxygen 1.8.6