linux.cc (8229:78bf55f23338) linux.cc (10037:5cac77888310)
1/*
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
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
13 *
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * Copyright (c) 2007-2008 The Florida State University
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer;

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

29 * Authors: Stephen Hines
30 */
31
32#include <fcntl.h>
33
34#include "arch/arm/linux/linux.hh"
35
36// open(2) flags translation table
14 * Copyright (c) 2003-2005 The Regents of The University of Michigan
15 * Copyright (c) 2007-2008 The Florida State University
16 * All rights reserved.
17 *
18 * Redistribution and use in source and binary forms, with or without
19 * modification, are permitted provided that the following conditions are
20 * met: redistributions of source code must retain the above copyright
21 * notice, this list of conditions and the following disclaimer;

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

41 * Authors: Stephen Hines
42 */
43
44#include <fcntl.h>
45
46#include "arch/arm/linux/linux.hh"
47
48// open(2) flags translation table
37OpenFlagTransTable ArmLinux::openFlagTable[] = {
49OpenFlagTransTable ArmLinux32::openFlagTable[] = {
38#ifdef _MSC_VER
50#ifdef _MSC_VER
39 { ArmLinux::TGT_O_RDONLY, _O_RDONLY },
40 { ArmLinux::TGT_O_WRONLY, _O_WRONLY },
41 { ArmLinux::TGT_O_RDWR, _O_RDWR },
42 { ArmLinux::TGT_O_APPEND, _O_APPEND },
43 { ArmLinux::TGT_O_CREAT, _O_CREAT },
44 { ArmLinux::TGT_O_TRUNC, _O_TRUNC },
45 { ArmLinux::TGT_O_EXCL, _O_EXCL },
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_APPEND, _O_APPEND },
55 { ArmLinux32::TGT_O_CREAT, _O_CREAT },
56 { ArmLinux32::TGT_O_TRUNC, _O_TRUNC },
57 { ArmLinux32::TGT_O_EXCL, _O_EXCL },
46#ifdef _O_NONBLOCK
58#ifdef _O_NONBLOCK
47 { ArmLinux::TGT_O_NONBLOCK, _O_NONBLOCK },
59 { ArmLinux32::TGT_O_NONBLOCK, _O_NONBLOCK },
48#endif
49#ifdef _O_NOCTTY
60#endif
61#ifdef _O_NOCTTY
50 { ArmLinux::TGT_O_NOCTTY, _O_NOCTTY },
62 { ArmLinux32::TGT_O_NOCTTY, _O_NOCTTY },
51#endif
52#ifdef _O_SYNC
63#endif
64#ifdef _O_SYNC
53 { ArmLinux::TGT_O_SYNC, _O_SYNC },
65 { ArmLinux32::TGT_O_SYNC, _O_SYNC },
54#endif
55#else /* !_MSC_VER */
66#endif
67#else /* !_MSC_VER */
56 { ArmLinux::TGT_O_RDONLY, O_RDONLY },
57 { ArmLinux::TGT_O_WRONLY, O_WRONLY },
58 { ArmLinux::TGT_O_RDWR, O_RDWR },
59 { ArmLinux::TGT_O_CREAT, O_CREAT },
60 { ArmLinux::TGT_O_EXCL, O_EXCL },
61 { ArmLinux::TGT_O_NOCTTY, O_NOCTTY },
62 { ArmLinux::TGT_O_TRUNC, O_TRUNC },
63 { ArmLinux::TGT_O_APPEND, O_APPEND },
64 { ArmLinux::TGT_O_NONBLOCK, O_NONBLOCK },
68 { ArmLinux32::TGT_O_RDONLY, O_RDONLY },
69 { ArmLinux32::TGT_O_WRONLY, O_WRONLY },
70 { ArmLinux32::TGT_O_RDWR, O_RDWR },
71 { ArmLinux32::TGT_O_CREAT, O_CREAT },
72 { ArmLinux32::TGT_O_EXCL, O_EXCL },
73 { ArmLinux32::TGT_O_NOCTTY, O_NOCTTY },
74 { ArmLinux32::TGT_O_TRUNC, O_TRUNC },
75 { ArmLinux32::TGT_O_APPEND, O_APPEND },
76 { ArmLinux32::TGT_O_NONBLOCK, O_NONBLOCK },
65#ifdef O_SYNC
77#ifdef O_SYNC
66 { ArmLinux::TGT_O_SYNC, O_SYNC },
78 { ArmLinux32::TGT_O_SYNC, O_SYNC },
67#endif
68#ifdef FASYNC
79#endif
80#ifdef FASYNC
69 { ArmLinux::TGT_FASYNC, FASYNC },
81 { ArmLinux32::TGT_FASYNC, FASYNC },
70#endif
71#ifdef O_DIRECT
82#endif
83#ifdef O_DIRECT
72 { ArmLinux::TGT_O_DIRECT, O_DIRECT },
84 { ArmLinux32::TGT_O_DIRECT, O_DIRECT },
73#endif
74#ifdef O_LARGEFILE
85#endif
86#ifdef O_LARGEFILE
75 { ArmLinux::TGT_O_LARGEFILE, O_LARGEFILE },
87 { ArmLinux32::TGT_O_LARGEFILE, O_LARGEFILE },
76#endif
77#ifdef O_DIRECTORY
88#endif
89#ifdef O_DIRECTORY
78 { ArmLinux::TGT_O_DIRECTORY, O_DIRECTORY },
90 { ArmLinux32::TGT_O_DIRECTORY, O_DIRECTORY },
79#endif
80#ifdef O_NOFOLLOW
91#endif
92#ifdef O_NOFOLLOW
81 { ArmLinux::TGT_O_NOFOLLOW, O_NOFOLLOW },
93 { ArmLinux32::TGT_O_NOFOLLOW, O_NOFOLLOW },
82#endif
83#endif /* _MSC_VER */
84};
85
94#endif
95#endif /* _MSC_VER */
96};
97
86const int ArmLinux::NUM_OPEN_FLAGS =
87 (sizeof(ArmLinux::openFlagTable)/sizeof(ArmLinux::openFlagTable[0]));
98const int ArmLinux32::NUM_OPEN_FLAGS = sizeof(ArmLinux32::openFlagTable) /
99 sizeof(ArmLinux32::openFlagTable[0]);
88
100
101// open(2) flags translation table
102OpenFlagTransTable ArmLinux64::openFlagTable[] = {
103#ifdef _MSC_VER
104 { ArmLinux64::TGT_O_RDONLY, _O_RDONLY },
105 { ArmLinux64::TGT_O_WRONLY, _O_WRONLY },
106 { ArmLinux64::TGT_O_RDWR, _O_RDWR },
107 { ArmLinux64::TGT_O_APPEND, _O_APPEND },
108 { ArmLinux64::TGT_O_CREAT, _O_CREAT },
109 { ArmLinux64::TGT_O_TRUNC, _O_TRUNC },
110 { ArmLinux64::TGT_O_EXCL, _O_EXCL },
111#ifdef _O_NONBLOCK
112 { ArmLinux64::TGT_O_NONBLOCK, _O_NONBLOCK },
113#endif
114#ifdef _O_NOCTTY
115 { ArmLinux64::TGT_O_NOCTTY, _O_NOCTTY },
116#endif
117#ifdef _O_SYNC
118 { ArmLinux64::TGT_O_SYNC, _O_SYNC },
119#endif
120#else /* !_MSC_VER */
121 { ArmLinux64::TGT_O_RDONLY, O_RDONLY },
122 { ArmLinux64::TGT_O_WRONLY, O_WRONLY },
123 { ArmLinux64::TGT_O_RDWR, O_RDWR },
124 { ArmLinux64::TGT_O_CREAT, O_CREAT },
125 { ArmLinux64::TGT_O_EXCL, O_EXCL },
126 { ArmLinux64::TGT_O_NOCTTY, O_NOCTTY },
127 { ArmLinux64::TGT_O_TRUNC, O_TRUNC },
128 { ArmLinux64::TGT_O_APPEND, O_APPEND },
129 { ArmLinux64::TGT_O_NONBLOCK, O_NONBLOCK },
130#ifdef O_SYNC
131 { ArmLinux64::TGT_O_SYNC, O_SYNC },
132#endif
133#ifdef FASYNC
134 { ArmLinux64::TGT_FASYNC, FASYNC },
135#endif
136#ifdef O_DIRECT
137 { ArmLinux64::TGT_O_DIRECT, O_DIRECT },
138#endif
139#ifdef O_LARGEFILE
140 { ArmLinux64::TGT_O_LARGEFILE, O_LARGEFILE },
141#endif
142#ifdef O_DIRECTORY
143 { ArmLinux64::TGT_O_DIRECTORY, O_DIRECTORY },
144#endif
145#ifdef O_NOFOLLOW
146 { ArmLinux64::TGT_O_NOFOLLOW, O_NOFOLLOW },
147#endif
148#endif /* _MSC_VER */
149};
150
151const int ArmLinux64::NUM_OPEN_FLAGS = sizeof(ArmLinux64::openFlagTable) /
152 sizeof(ArmLinux64::openFlagTable[0]);
153