Artemis Teensy Flight Software
The software on the Teensy in the Artemis cubesat.
configCosmosKernel.h
Go to the documentation of this file.
1 /********************************************************************
2 * Copyright (C) 2015 by Interstel Technologies, Inc.
3 * and Hawaii Space Flight Laboratory.
4 *
5 * This file is part of the COSMOS/core that is the central
6 * module for COSMOS. For more information on COSMOS go to
7 * <http://cosmos-project.com>
8 *
9 * The COSMOS/core software is licenced under the
10 * GNU Lesser General Public License (LGPL) version 3 licence.
11 *
12 * You should have received a copy of the
13 * GNU Lesser General Public License
14 * If not, go to <http://www.gnu.org/licenses/>
15 *
16 * COSMOS/core is free software: you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public License
18 * as published by the Free Software Foundation, either version 3 of
19 * the License, or (at your option) any later version.
20 *
21 * COSMOS/core is distributed in the hope that it will be useful, but
22 * WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * Lesser General Public License for more details.
25 *
26 * Refer to the "licences" folder for further information on the
27 * condititons and terms to use this software.
28 ********************************************************************/
29 
30 #ifndef CONFIGCOSMOSKERNEL_H
31 #define CONFIGCOSMOSKERNEL_H
32 
33 // NB: EJP 20170403 - added to suppress the ocean of format errors that will never be correct for all
34 // platforms. We will just have to get the formatting right on our own.
35 //pragma GCC diagnostic ignored "-Wformat="
36 
39 
40 // ------------------------------------------------------------------
41 // Building under Windows
42 #ifdef _WIN32
43 
44 #define COSMOS_WIN_OS
45 
47 #ifdef _MSC_BUILD
48 #define COSMOS_WIN_BUILD_MSVC
49 #endif
50 
51 // TODO: Explain the reason why this is here
52 #define NTDDI_VERSION NTDDI_WIN7
53 
54 #ifndef _WIN32_WINNT
55  #define _WIN32_WINNT _WIN32_WINNT_WIN7
56 #endif
57 #define _WIN32_WINNT _WIN32_WINNT_WIN7
58 #endif // Building under Windows
59 
60 // for MSVC
61 #define _CRT_SECURE_NO_DEPRECATE
62 
63 // --------------------- FOR ALL PLATFORMS ------------------------------
64 #define _USE_MATH_DEFINES
65 #include <climits>
66 #include <csignal>
67 #include <cstdint>
68 #include <cinttypes>
69 #include <cstdio>
70 #include <cstddef>
71 #include <cstdlib>
72 #include <cerrno>
73 #include <cstring>
74 #include <cmath>
75 using std::isfinite;
76 //using std::isinf;
77 //using std::isnan;
78 #include <fstream>
79 #include <iosfwd>
80 using std::ifstream;
81 using std::ofstream;
82 #include <iostream>
83 using std::cout;
84 using std::cerr;
85 using std::endl;
86 #include <sstream>
87 using std::stringstream;
88 #include <regex>
89 #include <iomanip>
90 using std::fixed;
91 using std::setprecision;
92 using std::setw;
93 using std::left;
94 using std::right;
95 #ifdef COSMOS_WIN_BUILD_MSVC
96 #include <io.h> // replaces in some ways unistd for windows
97 #else
98 #include <unistd.h>
99 #endif
100 #include <fcntl.h>
101 
102 #include <limits>
103 #include <string>
104 using std::string;
105 //using std::to_string;
106 #include <vector>
107 using std::vector;
108 #include <stack>
109 using std::stack;
110 #include <deque>
111 using std::deque;
112 // #include <thread>
113 // using std::thread;
114 #include <queue>
115 using std::queue;
116 #include <sstream>
117 using std::istringstream;
118 using std::pair;
119 #include <unordered_map>
120 using std::unordered_map;
121 #include <list>
122 using std::list;
123 #include <limits>
124 using std::numeric_limits;
125 
126 //#include "support/cosmos-errno.h"
127 #include "support/cosmos-defs.h"
128 
129 namespace Cosmos { namespace Support {} }
130 
131 using namespace Cosmos;
132 using namespace Cosmos::Support;
133 
138 #define COSMOS_SIZEOF(element) (reinterpret_cast<ptrdiff_t>(((element*)0)+1))
140 
141 
142 
143 #endif // CONFIGCOSMOSKERNEL_H
COSMOS definitions Definitions specific to the COSMOS environement.