aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/icmp/alloc.c
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2025-09-09 03:14:50 +0200
committerXavier Del Campo Romero <xavi92@disroot.org>2025-09-18 01:08:14 +0200
commitc11cb04929f28853142b14339b66f561ca028f36 (patch)
treea77a3ddcc1d01028e4077cb295b9b41f594c5d52 /src/protocol/icmp/alloc.c
First commitHEADmaster
Diffstat (limited to 'src/protocol/icmp/alloc.c')
-rw-r--r--src/protocol/icmp/alloc.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/protocol/icmp/alloc.c b/src/protocol/icmp/alloc.c
new file mode 100644
index 0000000..23d7329
--- /dev/null
+++ b/src/protocol/icmp/alloc.c
@@ -0,0 +1,29 @@
+/*
+ * wip, a small TCP/IP stack.
+ * Copyright (C) 2025 Xavier Del Campo Romero
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ */
+
+#include <wip/wip.h>
+#include <wip/prv/log.h>
+#include <wip/prv/icmp.h>
+#include <wip/prv/icmp/routines.h>
+#include <wip/prv/icmp/types.h>
+#include <stddef.h>
+
+void *wip_icmp_alloc(struct wip *const w)
+{
+ const struct wip_cfg *const cfg = &w->cfg;
+ const struct wip_icmp z = {0};
+ struct wip_icmp *const ret = cfg->alloc(sizeof *ret, cfg->user);
+
+ if (!ret)
+ return ret;
+
+ *ret = z;
+ ret->next = wip_icmp_rx_start;
+ return ret;
+}