nrfxlib API 2.7.99
Loading...
Searching...
No Matches
osal_packed.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018-2021 T2 Software, Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: LicenseRef-T2-LC3
5 */
6
7#ifndef __OSAL_PACKED_H__
8#define __OSAL_PACKED_H__
9
10#include "osal.h"
11
12#define READ_LE_8(_x) (((uint8_t )(((uint8_t *)(_x))[0] << 0x00)))
13#define READ_LE_16(_x) (((uint16_t)(((uint8_t *)(_x))[0] << 0x00)) | \
14 ((uint16_t)(((uint8_t *)(_x))[1] << 0x08)))
15#define READ_LE_32(_x) (((uint32_t)(((uint8_t *)(_x))[0] << 0x00)) | \
16 ((uint32_t)(((uint8_t *)(_x))[1] << 0x08)) | \
17 ((uint32_t)(((uint8_t *)(_x))[2] << 0x10)) | \
18 ((uint32_t)(((uint8_t *)(_x))[3] << 0x18)))
19#define READ_LE_64(_x) (((uint64_t)(((uint8_t *)(_x))[0] << 0x00)) | \
20 ((uint64_t)(((uint8_t *)(_x))[1] << 0x08)) | \
21 ((uint64_t)(((uint8_t *)(_x))[2] << 0x10)) | \
22 ((uint64_t)(((uint8_t *)(_x))[3] << 0x18)) | \
23 ((uint64_t)(((uint8_t *)(_x))[4] << 0x20)) | \
24 ((uint64_t)(((uint8_t *)(_x))[5] << 0x28)) | \
25 ((uint64_t)(((uint8_t *)(_x))[6] << 0x30)) | \
26 ((uint64_t)(((uint8_t *)(_x))[7] << 0x38)))
27
28#define WRITE_LE_8(_x, _y) do { \
29 ((uint8_t *)(_x))[0] = (((uint8_t )(_y)) >> 0x00) & 0xFF; \
30 } while(0)
31#define WRITE_LE_16(_x, _y) do { \
32 ((uint8_t *)(_x))[0] = (((uint16_t)(_y)) >> 0x00) & 0xFF; \
33 ((uint8_t *)(_x))[1] = (((uint16_t)(_y)) >> 0x08) & 0xFF; \
34 } while(0)
35#define WRITE_LE_32(_x, _y) do { \
36 ((uint8_t *)(_x))[0] = (((uint32_t)(_y)) >> 0x00) & 0xFF; \
37 ((uint8_t *)(_x))[1] = (((uint32_t)(_y)) >> 0x08) & 0xFF; \
38 ((uint8_t *)(_x))[2] = (((uint32_t)(_y)) >> 0x10) & 0xFF; \
39 ((uint8_t *)(_x))[3] = (((uint32_t)(_y)) >> 0x18) & 0xFF; \
40 } while(0)
41#define WRITE_LE_64(_x, _y) do { \
42 ((uint8_t *)(_x))[0] = (((uint32_t)(_y)) >> 0x00) & 0xFF; \
43 ((uint8_t *)(_x))[1] = (((uint32_t)(_y)) >> 0x08) & 0xFF; \
44 ((uint8_t *)(_x))[2] = (((uint32_t)(_y)) >> 0x10) & 0xFF; \
45 ((uint8_t *)(_x))[3] = (((uint32_t)(_y)) >> 0x18) & 0xFF; \
46 ((uint8_t *)(_x))[4] = (((uint32_t)(_y)) >> 0x20) & 0xFF; \
47 ((uint8_t *)(_x))[5] = (((uint32_t)(_y)) >> 0x28) & 0xFF; \
48 ((uint8_t *)(_x))[6] = (((uint32_t)(_y)) >> 0x30) & 0xFF; \
49 ((uint8_t *)(_x))[7] = (((uint32_t)(_y)) >> 0x38) & 0xFF; \
50 } while(0)
51
52#endif // __OSAL_PACKED_H__