diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/datatypes.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/datatypes.h b/include/datatypes.h new file mode 100644 index 0000000..50c3389 --- /dev/null +++ b/include/datatypes.h @@ -0,0 +1,44 @@ +/* + * Hot Beverage Companion – data types + * + * Copyright (C) 2018 Gediminas Jakutis + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; version 2.1 + * of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef CONFIGURATION_DATA_INCLUDED +#define CONFIGURATION_DATA_INCLUDED + +/* the union should help prevent the compiler from + * reordering fields as it sees fit when optimizing. + */ + +#define PADDING_START {0xff, 0xee, 0xdd, 0xff} +#define PADDING_END {0xff, 0xdd, 0xcc, 0xff} + +struct configuration { + union { + struct { + unsigned char padding_start[4]; + char ssid[32]; + char password[32]; + int calibration[4]; + unsigned char padding_end[4]; + }; + unsigned char __full[sizeof(int) * 4 + 32 * 2 + 4 * 2]; + }; +}; + +#endif /* CONFIGURATION_DATA_INCLUDED */ |