1 /*
2 * Copyright (c) 2024 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7 #ifndef TESTS_ZEPHYR_APPS_AAR_CCM_ECB_SRC_COMMON_H
8 #define TESTS_ZEPHYR_APPS_AAR_CCM_ECB_SRC_COMMON_H
9
10 #include <stdint.h>
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 #define CCM_DMA_ATTR_ALEN 11
17 #define CCM_DMA_ATTR_MLEN 12
18 #define CCM_DMA_ATTR_ADATA 13
19 #define CCM_DMA_ATTR_MDATA 14
20
21 typedef struct __packed __aligned(sizeof(void*)) {
22 uint8_t *job_ptr;
23 uint32_t length : 24;
24 uint8_t attr;
25 } job_t;
26
27 static inline void reverse_bytearray(uint8_t *p_array_in, uint8_t *p_array_out, unsigned size) {
28 for (unsigned i = 0; i < size; i++) {
29 p_array_out[size - i - 1] = p_array_in[i];
30 }
31 }
32
print_byte_array(uint8_t * in,unsigned size)33 static inline void print_byte_array(uint8_t *in, unsigned size) {
34 for (unsigned i = 0; i < size; i++) {
35 if (i > 0) {
36 printk(", ");
37 }
38 printk("0x%02X", in[i]);
39 }
40 printk("\n");
41 }
42
print_uint32_array(uint32_t * in,unsigned size)43 static inline void print_uint32_array(uint32_t *in, unsigned size) {
44 for (unsigned i = 0; i < size; i++) {
45 printk("0x%08X\n", in[i]);
46 }
47 printk("\n");
48 }
49
print_job(job_t * job,bool with_data)50 static inline void print_job(job_t *job, bool with_data) {
51 if (job == NULL) {
52 return;
53 }
54 #define PRINT_JOB printk("job_ptr=0x%p\tlength= %i\t attr=%i\n", job->job_ptr, job->length, job->attr);
55 while (job->job_ptr != 0) {
56 PRINT_JOB
57 if (with_data) {
58 printk(" ^--> ");
59 print_byte_array(job->job_ptr, job->length);
60 }
61 job++;
62 }
63 PRINT_JOB
64 printk("=> End of Joblist\n");
65 }
66
67 #ifdef __cplusplus
68 }
69 #endif
70
71 #endif /* TESTS_ZEPHYR_APPS_AAR_CCM_ECB_SRC_COMMON_H */
72