Bare Metal Programming Tool Kit
Main Page
Related Pages
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Pages
core
context.h
1
//***************************************************************************
2
//
3
// file : bmptk/core/context.h
4
//
5
// LICENSE (MIT expat license, copy of bmptk/license.txt)
6
//
7
// Copyright (c) 2013 Wouter van Ooijen (wouter@voti.nl)
8
//
9
// Permission is hereby granted, free of charge, to any person obtaining
10
// a copy of this software and associated documentation files (the
11
// "Software"), to deal in the Software without restriction, including
12
// without limitation the rights to use, copy, modify, merge, publish,
13
// distribute, sublicense, and/or sell copies of the Software, and to
14
// permit persons to whom the Software is furnished to do so, subject to
15
// the following conditions:
16
//
17
// The above copyright notice and this permission notice shall be included
18
// in all copies or substantial portions of the Software.
19
//
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE..
27
//
28
//***************************************************************************
29
30
#ifdef BMPTK_TARGET_win
31
#include <iostream>
32
#else
33
namespace
std {
class
ostream; };
34
#endif
35
36
namespace
bmptk {
37
39
class
context
{
40
42
unsigned
char
*bottom;
43
45
//
54
unsigned
char
*sp;
55
56
friend
std::ostream & bmptk::operator<< ( std::ostream &
s
,
const
context
&st );
57
58
public
:
59
61
constexpr
context
(
unsigned
char
*bottom,
unsigned
char
*size );
62
64
const
unsigned
int
stack_size
;
65
67
//
71
72
context
(
void
body(),
unsigned
int
stack_size
);
73
75
//
87
unsigned
int
stack_unused
()
const
;
88
90
//
102
unsigned
int
stack_used
()
const
{
103
return
stack_size
-
stack_unused
();
104
}
105
107
//
115
void
resume
();
116
};
117
119
//
122
extern
context
main_context
;
123
125
//
128
context *
current_context
();
129
131
//
135
std::ostream & operator<< ( std::ostream &s,
const
context &st );
136
137
};
// namespace bmptk;
Generated by
1.8.2