linux.cc revision 5222:bb733a878f85
1/*
2 * Copyright .AN) 2007 MIPS Technologies, Inc.  All Rights Reserved
3 *
4 * This software is part of the M5 simulator.
5 *
6 * THIS IS A LEGAL AGREEMENT.  BY DOWNLOADING, USING, COPYING, CREATING
7 * DERIVATIVE WORKS, AND/OR DISTRIBUTING THIS SOFTWARE YOU ARE AGREEING
8 * TO THESE TERMS AND CONDITIONS.
9 *
10 * Permission is granted to use, copy, create derivative works and
11 * distribute this software and such derivative works for any purpose,
12 * so long as (1) the copyright notice above, this grant of permission,
13 * and the disclaimer below appear in all copies and derivative works
14 * made, (2) the copyright notice above is augmented as appropriate to
15 * reflect the addition of any new copyrightable work in a derivative
16 * work (e.g., Copyright .AN) <Publication Year> Copyright Owner), and (3)
17 * the name of MIPS Technologies, Inc. ($B!H(BMIPS$B!I(B) is not used in any
18 * advertising or publicity pertaining to the use or distribution of
19 * this software without specific, written prior authorization.
20 *
21 * THIS SOFTWARE IS PROVIDED $B!H(BAS IS.$B!I(B  MIPS MAKES NO WARRANTIES AND
22 * DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, STATUTORY, IMPLIED OR
23 * OTHERWISE, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
25 * NON-INFRINGEMENT OF THIRD PARTY RIGHTS, REGARDING THIS SOFTWARE.
26 * IN NO EVENT SHALL MIPS BE LIABLE FOR ANY DAMAGES, INCLUDING DIRECT,
27 * INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR PUNITIVE DAMAGES OF
28 * ANY KIND OR NATURE, ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT,
29 * THIS SOFTWARE AND/OR THE USE OF THIS SOFTWARE, WHETHER SUCH LIABILITY
30 * IS ASSERTED ON THE BASIS OF CONTRACT, TORT (INCLUDING NEGLIGENCE OR
31 * STRICT LIABILITY), OR OTHERWISE, EVEN IF MIPS HAS BEEN WARNED OF THE
32 * POSSIBILITY OF ANY SUCH LOSS OR DAMAGE IN ADVANCE.
33 *
34 * Authors: Korey L. Sewell
35 *
36 */
37
38#include "arch/mips/linux/linux.hh"
39
40#include <fcntl.h>
41
42// open(2) flags translation table
43OpenFlagTransTable MipsLinux::openFlagTable[] = {
44#ifdef _MSC_VER
45  { MipsLinux::TGT_O_RDONLY,	_O_RDONLY },
46  { MipsLinux::TGT_O_WRONLY,	_O_WRONLY },
47  { MipsLinux::TGT_O_RDWR,	_O_RDWR },
48  { MipsLinux::TGT_O_APPEND,	_O_APPEND },
49  { MipsLinux::TGT_O_CREAT,	_O_CREAT },
50  { MipsLinux::TGT_O_TRUNC,	_O_TRUNC },
51  { MipsLinux::TGT_O_EXCL,	_O_EXCL },
52#ifdef _O_NONBLOCK
53  { MipsLinux::TGT_O_NONBLOCK,	_O_NONBLOCK },
54#endif
55#ifdef _O_NOCTTY
56  { MipsLinux::TGT_O_NOCTTY,	_O_NOCTTY },
57#endif
58#ifdef _O_SYNC
59  { MipsLinux::TGT_O_SYNC,	_O_SYNC },
60#endif
61#else /* !_MSC_VER */
62  { MipsLinux::TGT_O_RDONLY,	O_RDONLY },
63  { MipsLinux::TGT_O_WRONLY,	O_WRONLY },
64  { MipsLinux::TGT_O_RDWR,	O_RDWR },
65  { MipsLinux::TGT_O_APPEND,	O_APPEND },
66  { MipsLinux::TGT_O_CREAT,	O_CREAT },
67  { MipsLinux::TGT_O_TRUNC,	O_TRUNC },
68  { MipsLinux::TGT_O_EXCL,	O_EXCL },
69  { MipsLinux::TGT_O_NONBLOCK,	O_NONBLOCK },
70  { MipsLinux::TGT_O_NOCTTY,	O_NOCTTY },
71#ifdef O_SYNC
72  { MipsLinux::TGT_O_SYNC,	O_SYNC },
73#endif
74#endif /* _MSC_VER */
75};
76
77const int MipsLinux::NUM_OPEN_FLAGS =
78        (sizeof(MipsLinux::openFlagTable)/sizeof(MipsLinux::openFlagTable[0]));
79
80
81
82
83