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 |
|