Rev 66 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 66 | mjames | 1 | /* |
| 2 | * nvram.h |
||
| 3 | * |
||
| 4 | * Created on: 4 Jun 2017 |
||
| 5 | * Author: Mike |
||
| 6 | */ |
||
| 7 | #include "libPLX/plx.h" |
||
| 8 | |||
| 9 | #pragma once |
||
| 10 | |||
| 11 | |||
| 12 | #if defined __cplusplus |
||
| 13 | extern "C" |
||
| 14 | { |
||
| 15 | #endif |
||
| 16 | #pragma pack(push, 1) |
||
| 17 | |||
| 18 | ///\brief State of currently displayed item |
||
| 19 | /// this is expected to be packed into 32 bits |
||
| 20 | typedef union |
||
| 21 | { |
||
| 22 | struct |
||
| 23 | { |
||
| 24 | unsigned tag : 8; |
||
| 25 | unsigned : 8; |
||
| 26 | enum PLX_Observations observation : 8; |
||
| 27 | int instance : 8; |
||
| 28 | } data; |
||
| 29 | uint32_t u32; |
||
| 30 | } nvram_info_t; |
||
| 31 | #pragma pack(pop) |
||
| 32 | |||
| 33 | // Allocation of NVRAM words : there are 4k bytes |
||
| 34 | #define NVRAM_WORDS (4096 / sizeof(nvram_info_t)) |
||
| 35 | |||
| 36 | |||
| 37 | // Save data according to its tag field |
||
| 38 | extern void write_nvram_data(nvram_info_t data); |
||
| 39 | |||
| 40 | // find data according to the tag field or return null if no info, |
||
| 41 | extern nvram_info_t *find_nvram_data(uint8_t tag); |
||
| 42 | |||
| 43 | #if defined __cplusplus |
||
| 44 | } |
||
| 45 | #endif |