1 /* 2 * Copyright (c) 2018 Yubico AB. All rights reserved. 3 * Use of this source code is governed by a BSD-style 4 * license that can be found in the LICENSE file. 5 * SPDX-License-Identifier: BSD-2-Clause 6 */ 7 8 #ifndef _PACKED_H 9 #define _PACKED_H 10 11 #if defined(__GNUC__) 12 #define PACKED_TYPE(type, def) \ 13 typedef def __attribute__ ((__packed__)) type; 14 #elif defined(_MSC_VER) 15 #define PACKED_TYPE(type, def) \ 16 __pragma(pack(push, 1)) \ 17 typedef def type; \ 18 __pragma(pack(pop)) 19 #else 20 #error "please provide a way to define packed types on your platform" 21 #endif 22 23 #endif /* !_PACKED_H */ 24