linux.hh revision 6019
16019Shines@cs.fsu.edu/*
26019Shines@cs.fsu.edu * Copyright (c) 2003-2005 The Regents of The University of Michigan
36019Shines@cs.fsu.edu * Copyright (c) 2007-2008 The Florida State University
46019Shines@cs.fsu.edu * All rights reserved.
56019Shines@cs.fsu.edu *
66019Shines@cs.fsu.edu * Redistribution and use in source and binary forms, with or without
76019Shines@cs.fsu.edu * modification, are permitted provided that the following conditions are
86019Shines@cs.fsu.edu * met: redistributions of source code must retain the above copyright
96019Shines@cs.fsu.edu * notice, this list of conditions and the following disclaimer;
106019Shines@cs.fsu.edu * redistributions in binary form must reproduce the above copyright
116019Shines@cs.fsu.edu * notice, this list of conditions and the following disclaimer in the
126019Shines@cs.fsu.edu * documentation and/or other materials provided with the distribution;
136019Shines@cs.fsu.edu * neither the name of the copyright holders nor the names of its
146019Shines@cs.fsu.edu * contributors may be used to endorse or promote products derived from
156019Shines@cs.fsu.edu * this software without specific prior written permission.
166019Shines@cs.fsu.edu *
176019Shines@cs.fsu.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
186019Shines@cs.fsu.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
196019Shines@cs.fsu.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
206019Shines@cs.fsu.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
216019Shines@cs.fsu.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
226019Shines@cs.fsu.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
236019Shines@cs.fsu.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
246019Shines@cs.fsu.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
256019Shines@cs.fsu.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
266019Shines@cs.fsu.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
276019Shines@cs.fsu.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
286019Shines@cs.fsu.edu *
296019Shines@cs.fsu.edu * Authors: Stephen Hines
306019Shines@cs.fsu.edu */
316019Shines@cs.fsu.edu
326019Shines@cs.fsu.edu#ifndef __ARCH_ARM_LINUX_LINUX_HH__
336019Shines@cs.fsu.edu#define __ARCH_ARM_LINUX_LINUX_HH__
346019Shines@cs.fsu.edu
356019Shines@cs.fsu.edu#include "kern/linux/linux.hh"
366019Shines@cs.fsu.edu
376019Shines@cs.fsu.educlass ArmLinux : public Linux
386019Shines@cs.fsu.edu{
396019Shines@cs.fsu.edu  public:
406019Shines@cs.fsu.edu
416019Shines@cs.fsu.edu    /// This table maps the target open() flags to the corresponding
426019Shines@cs.fsu.edu    /// host open() flags.
436019Shines@cs.fsu.edu    static OpenFlagTransTable openFlagTable[];
446019Shines@cs.fsu.edu
456019Shines@cs.fsu.edu    /// Number of entries in openFlagTable[].
466019Shines@cs.fsu.edu    static const int NUM_OPEN_FLAGS;
476019Shines@cs.fsu.edu
486019Shines@cs.fsu.edu    //@{
496019Shines@cs.fsu.edu    /// open(2) flag values.
506019Shines@cs.fsu.edu    static const int TGT_O_RDONLY	= 0x00000000;	//!< O_RDONLY
516019Shines@cs.fsu.edu    static const int TGT_O_WRONLY	= 0x00000001;	//!< O_WRONLY
526019Shines@cs.fsu.edu    static const int TGT_O_RDWR	        = 0x00000002;	//!< O_RDWR
536019Shines@cs.fsu.edu    static const int TGT_O_CREAT	= 0x00000100;	//!< O_CREAT
546019Shines@cs.fsu.edu    static const int TGT_O_EXCL	        = 0x00000200;	//!< O_EXCL
556019Shines@cs.fsu.edu    static const int TGT_O_NOCTTY	= 0x00000400;	//!< O_NOCTTY
566019Shines@cs.fsu.edu    static const int TGT_O_TRUNC	= 0x00001000;	//!< O_TRUNC
576019Shines@cs.fsu.edu    static const int TGT_O_APPEND	= 0x00002000;	//!< O_APPEND
586019Shines@cs.fsu.edu    static const int TGT_O_NONBLOCK     = 0x00004000;	//!< O_NONBLOCK
596019Shines@cs.fsu.edu    static const int TGT_O_SYNC	        = 0x00010000;	//!< O_SYNC
606019Shines@cs.fsu.edu    static const int TGT_FASYNC		= 0x00020000;	//!< FASYNC
616019Shines@cs.fsu.edu    static const int TGT_O_DIRECT	= 0x00040000;	//!< O_DIRECT
626019Shines@cs.fsu.edu    static const int TGT_O_LARGEFILE	= 0x00100000;	//!< O_LARGEFILE
636019Shines@cs.fsu.edu    static const int TGT_O_DIRECTORY	= 0x00200000;	//!< O_DIRECTORY
646019Shines@cs.fsu.edu    static const int TGT_O_NOFOLLOW	= 0x00400000;	//!< O_NOFOLLOW
656019Shines@cs.fsu.edu    static const int TGT_O_NOATIME	= 0x01000000;	//!< O_NOATIME
666019Shines@cs.fsu.edu    //@}
676019Shines@cs.fsu.edu
686019Shines@cs.fsu.edu    /// For mmap().
696019Shines@cs.fsu.edu    static const unsigned TGT_MAP_ANONYMOUS = 0x800;
706019Shines@cs.fsu.edu
716019Shines@cs.fsu.edu    //@{
726019Shines@cs.fsu.edu    /// For getsysinfo().
736019Shines@cs.fsu.edu    static const unsigned GSI_PLATFORM_NAME = 103;  //!< platform name as string
746019Shines@cs.fsu.edu    static const unsigned GSI_CPU_INFO = 59;	//!< CPU information
756019Shines@cs.fsu.edu    static const unsigned GSI_PROC_TYPE = 60;	//!< get proc_type
766019Shines@cs.fsu.edu    static const unsigned GSI_MAX_CPU = 30;         //!< max # cpu's on this machine
776019Shines@cs.fsu.edu    static const unsigned GSI_CPUS_IN_BOX = 55;	//!< number of CPUs in system
786019Shines@cs.fsu.edu    static const unsigned GSI_PHYSMEM = 19;	        //!< Physical memory in KB
796019Shines@cs.fsu.edu    static const unsigned GSI_CLK_TCK = 42;	        //!< clock freq in Hz
806019Shines@cs.fsu.edu    //@}
816019Shines@cs.fsu.edu
826019Shines@cs.fsu.edu    //@{
836019Shines@cs.fsu.edu    /// For getrusage().
846019Shines@cs.fsu.edu    static const int TGT_RUSAGE_SELF = 0;
856019Shines@cs.fsu.edu    static const int TGT_RUSAGE_CHILDREN = -1;
866019Shines@cs.fsu.edu    static const int TGT_RUSAGE_BOTH = -2;
876019Shines@cs.fsu.edu    //@}
886019Shines@cs.fsu.edu
896019Shines@cs.fsu.edu    //@{
906019Shines@cs.fsu.edu    /// For setsysinfo().
916019Shines@cs.fsu.edu    static const unsigned SSI_IEEE_FP_CONTROL = 14; //!< ieee_set_fp_control()
926019Shines@cs.fsu.edu    //@}
936019Shines@cs.fsu.edu
946019Shines@cs.fsu.edu    //@{
956019Shines@cs.fsu.edu    /// ioctl() command codes.
966019Shines@cs.fsu.edu    static const unsigned TIOCGETP_   = 0x40067408;
976019Shines@cs.fsu.edu    static const unsigned TIOCSETP_   = 0x80067409;
986019Shines@cs.fsu.edu    static const unsigned TIOCSETN_   = 0x8006740a;
996019Shines@cs.fsu.edu    static const unsigned TIOCSETC_   = 0x80067411;
1006019Shines@cs.fsu.edu    static const unsigned TIOCGETC_   = 0x40067412;
1016019Shines@cs.fsu.edu    static const unsigned FIONREAD_   = 0x4004667f;
1026019Shines@cs.fsu.edu    static const unsigned TIOCISATTY_ = 0x2000745e;
1036019Shines@cs.fsu.edu    static const unsigned TIOCGETS_   = 0x402c7413;
1046019Shines@cs.fsu.edu    static const unsigned TIOCGETA_   = 0x40127417;
1056019Shines@cs.fsu.edu    //@}
1066019Shines@cs.fsu.edu
1076019Shines@cs.fsu.edu    /// For table().
1086019Shines@cs.fsu.edu    static const int TBL_SYSINFO = 12;
1096019Shines@cs.fsu.edu
1106019Shines@cs.fsu.edu    /// Resource enumeration for getrlimit().
1116019Shines@cs.fsu.edu    enum rlimit_resources {
1126019Shines@cs.fsu.edu        TGT_RLIMIT_CPU = 0,
1136019Shines@cs.fsu.edu        TGT_RLIMIT_FSIZE = 1,
1146019Shines@cs.fsu.edu        TGT_RLIMIT_DATA = 2,
1156019Shines@cs.fsu.edu        TGT_RLIMIT_STACK = 3,
1166019Shines@cs.fsu.edu        TGT_RLIMIT_CORE = 4,
1176019Shines@cs.fsu.edu        TGT_RLIMIT_NOFILE = 5,
1186019Shines@cs.fsu.edu        TGT_RLIMIT_AS = 6,
1196019Shines@cs.fsu.edu        TGT_RLIMIT_RSS = 7,
1206019Shines@cs.fsu.edu        TGT_RLIMIT_VMEM = 7,
1216019Shines@cs.fsu.edu        TGT_RLIMIT_NPROC = 8,
1226019Shines@cs.fsu.edu        TGT_RLIMIT_MEMLOCK = 9,
1236019Shines@cs.fsu.edu        TGT_RLIMIT_LOCKS = 10
1246019Shines@cs.fsu.edu    };
1256019Shines@cs.fsu.edu
1266019Shines@cs.fsu.edu};
1276019Shines@cs.fsu.edu
1286019Shines@cs.fsu.edu#endif
129