2 * \file ferret/include/types.h
3 * \brief Global types for ferret.
6 * \author Martin Pohlack <mp26@os.inf.tu-dresden.de>
9 * (c) 2005-2009 Technische Universität Dresden
10 * This file is part of TUD:OS and distributed under the terms of the
11 * GNU General Public License 2.
12 * Please see the COPYING-GPL-2 file for details.
14 #ifndef __FERRET_INCLUDE_TYPES_H_
15 #define __FERRET_INCLUDE_TYPES_H_
17 #include <l4/ferret/maj_min.h>
18 #include <l4/re/c/dataspace.h>
21 #define __STDC_LIMIT_MACROS
24 #if defined (__KERNEL__)
25 #include <linux/types.h>
28 #include <sys/types.h>
32 /*********************************************************************
34 *********************************************************************/
38 uint32_t low; ///< Low 32 Bits
39 uint32_t high; ///< High 32 Bits
42 typedef int64_t ferret_time_t;
43 typedef uint64_t ferret_utime_t;
46 // XXX: This is only used by histogram code _and_ the MAX/MIN macros are
47 // missing in Linux kernel code - why not move this somewhere else?
48 static const ferret_time_t FERRET_TIME_MIN = INT64_MIN;
49 static const ferret_time_t FERRET_TIME_MAX = INT64_MAX;
52 #define FERRET_DIR_NAME "FerretDir"
54 #define FERRET_ROOT_INSTANCE 0
56 /*********************************************************************
58 *********************************************************************/
69 /* XXX BjoernD, 2009-03-02: We turn off these special kinds of sensors for now
70 * until we know which of these we really want.
71 * (Suppose, this was only for Martin's measurements.)
74 FERRET_DPLIST = 7, // list protected with Delayed Preemption
75 FERRET_SLIST = 8, // list protected with L4Env Semaphores
76 FERRET_ULIST = 9, // list protected with Fiasco's User Semaphores
77 FERRET_ALIST = 10, // list protected with Fiasco-supported
78 // atomic roll-back sections
79 FERRET_VLIST = 11, // list protected with Fiasco-supported
80 // atomic roll-back sections, supports
81 // variable element sizes
85 /*********************************************************************
87 *********************************************************************/
91 FERRET_PERMANENT = 0x00000001, // keep this sensor in the
92 // directory, even if its usage
93 // count drops to zero
94 FERRET_SUPERPAGES = 0x00010000, // use superpages for sensor
95 // dataspace if it would be
96 // larger than one page