From d4413e6a361aafe6922431e1369589403a63b312 Mon Sep 17 00:00:00 2001 From: "leon.bohnwagner" <leon.bohnwagner@informatik.hs-fulda.de> Date: Thu, 13 Feb 2025 02:17:04 +0100 Subject: [PATCH] feat: add packet struct --- common/include/message.h | 2 +- kernel/kmod.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/common/include/message.h b/common/include/message.h index 0ee2b9a..4805aba 100644 --- a/common/include/message.h +++ b/common/include/message.h @@ -15,7 +15,7 @@ typedef s64 int64_t; #include <stdint.h> #endif -#define MAX_MESSAGE_DATA_SIZE 4096 +#define MAX_MESSAGE_DATA_SIZE 8 enum message_data_type { INT8, diff --git a/kernel/kmod.c b/kernel/kmod.c index d36d71b..ab812ef 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c @@ -35,6 +35,11 @@ static atomic_t wake_counter = ATOMIC_INIT(0); static int slot = 0; +typedef struct packet { + message_t data; + uint32_t crc; +} packet_t; + static int device_open(struct inode *inode, struct file *file) { return 0; @@ -110,10 +115,12 @@ static int timed_thread_fn(void *args) { atomic_dec(&wake_counter); if (slot == 0) { - uint32_t crc = calculate_crc32(&message, sizeof(message)); + packet_t packet; + + packet.data = *message; + packet.crc = calculate_crc32(&packet.data, sizeof(&packet.data)); - send_data(&message, sizeof(message)); - send_data(&crc, sizeof(uint32_t)); + send_data(&packet, sizeof(packet)); } slot = (slot + 1) % SLOTS; -- GitLab