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