FreeEMS
0.2.0-SNAPSHOT-285-g028e24c
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
src
main
inc
generalTypes.h
Go to the documentation of this file.
1
/* FreeEMS - the open source engine management system
2
*
3
* Copyright 2008-2011 Fred Cooke
4
*
5
* This file is part of the FreeEMS project.
6
*
7
* FreeEMS software is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
*
12
* FreeEMS software is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with any FreeEMS software. If not, see http://www.gnu.org/licenses/
19
*
20
* We ask that if you make any changes to this file you email them upstream to
21
* us at admin(at)diyefi(dot)org or, even better, fork the code on github.com!
22
*
23
* Thank you for choosing FreeEMS to run your engine!
24
*/
25
26
27
/** @file
28
*
29
* @ingroup allHeaders
30
* @ingroup globalHeaders
31
* @ingroup dataStructures
32
*
33
* @brief General struct typedefs
34
*
35
* This file contains all of the general purpose and smaller struct typedefs.
36
*/
37
38
39
/* Header file multiple inclusion protection courtesy eclipse Header Template */
40
/* and http://gcc.gnu.org/onlinedocs/gcc-3.1.1/cpp/ C pre processor manual */
41
#ifndef FILE_GENERAL_TYPES_H_SEEN
42
#define FILE_GENERAL_TYPES_H_SEEN
43
44
45
/* block_ prefixed defines have Masks for the flag field in the blockDetails struct. */
46
47
/** Memory block has parent */
48
#define block_has_parent BIT0_16
49
#define block_is_in_ram BIT1_16
50
#define block_is_in_flash BIT2_16
51
#define block_is_indexable BIT3_16
52
#define block_is_read_only BIT4_16
53
#define block_gets_verified BIT5_16
54
#define block_for_backup_restore BIT6_16
55
#define block_spare_flag_7 BIT7_16
56
#define block_spare_flag_8 BIT8_16
57
#define block_spare_flag_9 BIT9_16
58
#define block_spare_flag_10 BIT10_16
59
#define block_spare_flag_11 BIT11_16
60
#define block_is_2dus_table BIT12_16
61
#define block_is_main_table BIT13_16
62
#define block_is_lookup_data BIT14_16
63
#define block_is_configuration BIT15_16
64
65
/** Addressable memory block description.
66
*
67
* This structure holds all details required to manipulate a particular block.
68
*
69
* It is used for passing around the details of a memory block to allow serial
70
* operations on RAM and flash data structures in a safe and protected way.
71
*
72
* block_ prefixed defines are masks for the flag field in the this struct.
73
*/
74
typedef
struct
{
75
unsigned
short
flags
;
///< Property flags, see flag masks above
76
unsigned
short
parent
;
///< Location ID of parent block if sub block
77
unsigned
char
RAMPage
;
///< RAM page number
78
unsigned
char
FlashPage
;
///< Flash page number
79
void
*
RAMAddress
;
///< RAM address
80
void
*
FlashAddress
;
///< Flash address
81
unsigned
short
size
;
///< Memory block size
82
}
blockDetails
;
83
84
85
#else
86
/* let us know if we are being untidy with headers */
87
#warning "Header file GENERAL_TYPES_H seen before, sort it out!"
88
/* end of the wrapper ifdef from the very top */
89
#endif
Generated on Sat Jun 6 2015 07:41:32 for FreeEMS by
1.8.1.2