linux.cc (11382:654272b82e94) linux.cc (11383:5ac090acd180)
1/*
2 * Copyright (c) 2011 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 27 unchanged lines hidden (view full) ---

36 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 *
41 * Authors: Stephen Hines
42 */
43
1/*
2 * Copyright (c) 2011 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 27 unchanged lines hidden (view full) ---

36 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 *
41 * Authors: Stephen Hines
42 */
43
44#include <fcntl.h>
45
46#include "arch/arm/linux/linux.hh"
47
44#include "arch/arm/linux/linux.hh"
45
46#include <fcntl.h>
47#include <sys/mman.h>
48
48// open(2) flags translation table
49SyscallFlagTransTable ArmLinux32::openFlagTable[] = {
50#ifdef _MSC_VER
51 { ArmLinux32::TGT_O_RDONLY, _O_RDONLY },
52 { ArmLinux32::TGT_O_WRONLY, _O_WRONLY },
53 { ArmLinux32::TGT_O_RDWR, _O_RDWR },
54 { ArmLinux32::TGT_O_CREAT, _O_CREAT },
55 { ArmLinux32::TGT_O_EXCL, _O_EXCL },

--- 60 unchanged lines hidden (view full) ---

116 { ArmLinux32::TGT_O_PATH, O_PATH },
117#endif
118#endif /* _MSC_VER */
119};
120
121const int ArmLinux32::NUM_OPEN_FLAGS = sizeof(ArmLinux32::openFlagTable) /
122 sizeof(ArmLinux32::openFlagTable[0]);
123
49// open(2) flags translation table
50SyscallFlagTransTable ArmLinux32::openFlagTable[] = {
51#ifdef _MSC_VER
52 { ArmLinux32::TGT_O_RDONLY, _O_RDONLY },
53 { ArmLinux32::TGT_O_WRONLY, _O_WRONLY },
54 { ArmLinux32::TGT_O_RDWR, _O_RDWR },
55 { ArmLinux32::TGT_O_CREAT, _O_CREAT },
56 { ArmLinux32::TGT_O_EXCL, _O_EXCL },

--- 60 unchanged lines hidden (view full) ---

117 { ArmLinux32::TGT_O_PATH, O_PATH },
118#endif
119#endif /* _MSC_VER */
120};
121
122const int ArmLinux32::NUM_OPEN_FLAGS = sizeof(ArmLinux32::openFlagTable) /
123 sizeof(ArmLinux32::openFlagTable[0]);
124
125// mmap(2) flags translation table
126SyscallFlagTransTable ArmLinux32::mmapFlagTable[] = {
127 { ArmLinux32::TGT_MAP_SHARED, MAP_SHARED },
128 { ArmLinux32::TGT_MAP_PRIVATE, MAP_PRIVATE },
129 { ArmLinux32::TGT_MAP_ANON, MAP_ANON },
130 { ArmLinux32::TGT_MAP_DENYWRITE, MAP_DENYWRITE },
131 { ArmLinux32::TGT_MAP_EXECUTABLE, MAP_EXECUTABLE },
132 { ArmLinux32::TGT_MAP_FILE, MAP_FILE },
133 { ArmLinux32::TGT_MAP_GROWSDOWN, MAP_GROWSDOWN },
134 { ArmLinux32::TGT_MAP_HUGETLB, MAP_HUGETLB },
135 { ArmLinux32::TGT_MAP_LOCKED, MAP_LOCKED },
136 { ArmLinux32::TGT_MAP_NONBLOCK, MAP_NONBLOCK },
137 { ArmLinux32::TGT_MAP_NORESERVE, MAP_NORESERVE },
138 { ArmLinux32::TGT_MAP_POPULATE, MAP_POPULATE },
139#ifdef MAP_STACK
140 { ArmLinux32::TGT_MAP_STACK, MAP_STACK },
141#endif
142 { ArmLinux32::TGT_MAP_ANONYMOUS, MAP_ANONYMOUS },
143 { ArmLinux32::TGT_MAP_FIXED, MAP_FIXED },
144};
145
146const unsigned ArmLinux32::NUM_MMAP_FLAGS =
147 sizeof(ArmLinux32::mmapFlagTable) /
148 sizeof(ArmLinux32::mmapFlagTable[0]);
149
124// open(2) flags translation table
125SyscallFlagTransTable ArmLinux64::openFlagTable[] = {
126#ifdef _MSC_VER
127 { ArmLinux64::TGT_O_RDONLY, _O_RDONLY },
128 { ArmLinux64::TGT_O_WRONLY, _O_WRONLY },
129 { ArmLinux64::TGT_O_RDWR, _O_RDWR },
130 { ArmLinux64::TGT_O_CREAT, _O_CREAT },
131 { ArmLinux64::TGT_O_EXCL, _O_EXCL },

--- 60 unchanged lines hidden (view full) ---

192 { ArmLinux64::TGT_O_PATH, O_PATH },
193#endif
194#endif /* _MSC_VER */
195};
196
197const int ArmLinux64::NUM_OPEN_FLAGS = sizeof(ArmLinux64::openFlagTable) /
198 sizeof(ArmLinux64::openFlagTable[0]);
199
150// open(2) flags translation table
151SyscallFlagTransTable ArmLinux64::openFlagTable[] = {
152#ifdef _MSC_VER
153 { ArmLinux64::TGT_O_RDONLY, _O_RDONLY },
154 { ArmLinux64::TGT_O_WRONLY, _O_WRONLY },
155 { ArmLinux64::TGT_O_RDWR, _O_RDWR },
156 { ArmLinux64::TGT_O_CREAT, _O_CREAT },
157 { ArmLinux64::TGT_O_EXCL, _O_EXCL },

--- 60 unchanged lines hidden (view full) ---

218 { ArmLinux64::TGT_O_PATH, O_PATH },
219#endif
220#endif /* _MSC_VER */
221};
222
223const int ArmLinux64::NUM_OPEN_FLAGS = sizeof(ArmLinux64::openFlagTable) /
224 sizeof(ArmLinux64::openFlagTable[0]);
225
226// mmap(2) flags translation table
227SyscallFlagTransTable ArmLinux64::mmapFlagTable[] = {
228 { ArmLinux64::TGT_MAP_SHARED, MAP_SHARED },
229 { ArmLinux64::TGT_MAP_PRIVATE, MAP_PRIVATE },
230 { ArmLinux64::TGT_MAP_ANON, MAP_ANON },
231 { ArmLinux64::TGT_MAP_DENYWRITE, MAP_DENYWRITE },
232 { ArmLinux64::TGT_MAP_EXECUTABLE, MAP_EXECUTABLE },
233 { ArmLinux64::TGT_MAP_FILE, MAP_FILE },
234 { ArmLinux64::TGT_MAP_GROWSDOWN, MAP_GROWSDOWN },
235 { ArmLinux64::TGT_MAP_HUGETLB, MAP_HUGETLB },
236 { ArmLinux64::TGT_MAP_LOCKED, MAP_LOCKED },
237 { ArmLinux64::TGT_MAP_NONBLOCK, MAP_NONBLOCK },
238 { ArmLinux64::TGT_MAP_NORESERVE, MAP_NORESERVE },
239 { ArmLinux64::TGT_MAP_POPULATE, MAP_POPULATE },
240#ifdef MAP_STACK
241 { ArmLinux64::TGT_MAP_STACK, MAP_STACK },
242#endif
243 { ArmLinux64::TGT_MAP_ANONYMOUS, MAP_ANONYMOUS },
244 { ArmLinux64::TGT_MAP_FIXED, MAP_FIXED },
245};
246
247const unsigned ArmLinux64::NUM_MMAP_FLAGS =
248 sizeof(ArmLinux64::mmapFlagTable) /
249 sizeof(ArmLinux64::mmapFlagTable[0]);
250