From fecb86f6093c1e8aed6ab05c29c5af9d0cb93157 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Tue, 24 Sep 2024 16:51:51 +0300 Subject: initial work towards message passing interface + As they are currently implemented, grid *may* get stuck if two nodes try to send to eachother at the same time, I should probably add in some kind of input buffer as well --- src/packet.c | 92 ------------------------------------------------------------ 1 file changed, 92 deletions(-) delete mode 100644 src/packet.c (limited to 'src/packet.c') diff --git a/src/packet.c b/src/packet.c deleted file mode 100644 index 9442307..0000000 --- a/src/packet.c +++ /dev/null @@ -1,92 +0,0 @@ -/* SPDX-License-Identifier: copyleft-next-0.3.1 */ -/* Copyright 2023 Kim Kuparinen < kimi.h.kuparinen@gmail.com > */ - -#include -#include -#include - -struct packet { - enum packet_state state; - enum packet_type type; - - uintptr_t addr; - size_t size; - void *data; -}; - - -struct packet *create_packet(enum packet_type type, uintptr_t addr, size_t size) -{ - struct packet *pkt = malloc(sizeof(struct packet) + size); - if (!pkt) - return NULL; - - pkt->state = PACKET_INIT; - pkt->type = type; - pkt->addr = addr; - pkt->size = size; - pkt->data = pkt + 1; - return pkt; -} - -struct packet *create_packet_with(enum packet_type type, uintptr_t addr, - size_t size, void *data) -{ - struct packet *pkt = malloc(sizeof(struct packet)); - if (!pkt) - return NULL; - - pkt->state = PACKET_INIT; - pkt->type = type; - pkt->addr = addr; - pkt->size = size; - pkt->data = data; - return pkt; -} - -struct packet *reuse_packet(struct packet *pkt, enum packet_type type, - uintptr_t addr, size_t size, void *data) -{ - assert(pkt->state == PACKET_DONE); - pkt->state = PACKET_INIT; - pkt->type = type; - pkt->addr = addr; - pkt->size = size; - pkt->data = data; - return pkt; -} - -enum packet_type packet_type(struct packet *pkt) -{ - return pkt->type; -} - -enum packet_state packet_state(struct packet *pkt) -{ - return pkt->state; -} - -void packet_set_state(struct packet *pkt, enum packet_state state) -{ - pkt->state = state; -} - -size_t packet_size(struct packet *pkt) -{ - return pkt->size; -} - -uintptr_t packet_addr(struct packet *pkt) -{ - return pkt->addr; -} - -void *packet_data(struct packet *pkt) -{ - return pkt->data; -} - -void destroy_packet(struct packet *pkt) -{ - free(pkt); -} -- cgit v1.3