mirror of
https://github.com/nasa/trick.git
synced 2024-12-22 14:32:24 +00:00
115 lines
2.1 KiB
C++
115 lines
2.1 KiB
C++
/********************************* TRICK HEADER *******************************
|
|
* PURPOSE: ( Data record test )
|
|
* REFERENCES: ( None )
|
|
* ASSUMPTIONS AND LIMITATIONS: ( None )
|
|
* PROGRAMMERS: ( (Lindsay Landry) (L3) (7-22-2013) )
|
|
********************************************************************************/
|
|
#include <wchar.h>
|
|
#include <string>
|
|
|
|
|
|
#ifndef DR_HH
|
|
#define DR_HH
|
|
|
|
typedef enum {
|
|
ONE = 1,
|
|
TWO = 2,
|
|
THREE = 3,
|
|
FOUR = 4
|
|
} NUM_DEFS;
|
|
|
|
typedef struct {
|
|
unsigned int var1 :14;
|
|
unsigned int var2 :5;
|
|
unsigned int var3 :12;
|
|
unsigned int var4 :1;
|
|
} UINT_BITS;
|
|
|
|
typedef struct {
|
|
int var1 :7;
|
|
int var2 :16;
|
|
int var3 :3;
|
|
int var4 :6;
|
|
} INT_BITS;
|
|
|
|
typedef struct {
|
|
unsigned char var1 :3;
|
|
unsigned char var2 :2;
|
|
unsigned char var3 :2;
|
|
unsigned char var4 :1;
|
|
} UCHAR_BITS;
|
|
|
|
typedef struct {
|
|
char var1 :2;
|
|
char var2 :2;
|
|
char var3 :2;
|
|
char var4 :2;
|
|
} CHAR_BITS;
|
|
|
|
typedef struct {
|
|
unsigned short var1 :4;
|
|
unsigned short var2 :2;
|
|
unsigned short var3 :9;
|
|
unsigned short var4 :1;
|
|
} USHORT_BITS;
|
|
|
|
typedef struct {
|
|
short var1 :8;
|
|
short var2 :1;
|
|
short var3 :2;
|
|
short var4 :5;
|
|
} SHORT_BITS;
|
|
|
|
/* this struct should be the size of the largest member
|
|
* (in this case, unsigned int) */
|
|
typedef struct {
|
|
unsigned char var1 :3;
|
|
short var2 :8;
|
|
int var3 :9;
|
|
unsigned int var4 :12;
|
|
} MIX_BITS;
|
|
|
|
|
|
class DRTypes {
|
|
public:
|
|
|
|
char a;
|
|
unsigned char b;
|
|
short c;
|
|
unsigned short d;
|
|
int e;
|
|
unsigned int f;
|
|
long g;
|
|
unsigned long h;
|
|
float i;
|
|
double j;
|
|
long long k;
|
|
unsigned long long l;
|
|
bool m;
|
|
NUM_DEFS n;
|
|
char * o; // Should not actually be added
|
|
std::string p; // Should not actually be added
|
|
int q[5];
|
|
double r[2][2];
|
|
|
|
UINT_BITS uintB;
|
|
INT_BITS intB;
|
|
UCHAR_BITS ucharB;
|
|
CHAR_BITS charB;
|
|
USHORT_BITS ushortB;
|
|
SHORT_BITS shortB;
|
|
MIX_BITS mixB;
|
|
|
|
|
|
DRTypes();
|
|
~DRTypes();
|
|
|
|
int init();
|
|
|
|
private:
|
|
void bitfieldInit(int bitSizes[], bool sign);
|
|
};
|
|
|
|
#endif
|
|
|