summaryrefslogtreecommitdiff
path: root/libs/enet/callbacks.c
diff options
context:
space:
mode:
authorBernd Wachter <bwachter-tmw@lart.info>2010-08-13 19:14:33 +0300
committerBernd Wachter <bwachter-mana@lart.info>2010-08-15 00:34:50 +0300
commit3a6ff85e8f03960fc0709ed1cb203a44b8c4d6b5 (patch)
treed23df8e53f5868e450e98fdc266b1c8a36f1a386 /libs/enet/callbacks.c
parentab0933b5a4c6cd3ca9f6b13bd011c7e0bf4e546e (diff)
downloadmanaserv-3a6ff85e8f03960fc0709ed1cb203a44b8c4d6b5.tar.gz
manaserv-3a6ff85e8f03960fc0709ed1cb203a44b8c4d6b5.tar.bz2
manaserv-3a6ff85e8f03960fc0709ed1cb203a44b8c4d6b5.tar.xz
manaserv-3a6ff85e8f03960fc0709ed1cb203a44b8c4d6b5.zip
Add enet files
Diffstat (limited to 'libs/enet/callbacks.c')
-rw-r--r--libs/enet/callbacks.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/libs/enet/callbacks.c b/libs/enet/callbacks.c
new file mode 100644
index 00000000..f9412825
--- /dev/null
+++ b/libs/enet/callbacks.c
@@ -0,0 +1,47 @@
+/**
+ @file callbacks.c
+ @brief ENet callback functions
+*/
+#define ENET_BUILDING_LIB 1
+#include "enet/enet.h"
+
+static ENetCallbacks callbacks = { malloc, free, abort };
+
+int
+enet_initialize_with_callbacks (ENetVersion version, const ENetCallbacks * inits)
+{
+ if (version < ENET_VERSION_CREATE (1, 3, 0))
+ return -1;
+
+ if (inits -> malloc != NULL || inits -> free != NULL)
+ {
+ if (inits -> malloc == NULL || inits -> free == NULL)
+ return -1;
+
+ callbacks.malloc = inits -> malloc;
+ callbacks.free = inits -> free;
+ }
+
+ if (inits -> no_memory != NULL)
+ callbacks.no_memory = inits -> no_memory;
+
+ return enet_initialize ();
+}
+
+void *
+enet_malloc (size_t size)
+{
+ void * memory = callbacks.malloc (size);
+
+ if (memory == NULL)
+ callbacks.no_memory ();
+
+ return memory;
+}
+
+void
+enet_free (void * memory)
+{
+ callbacks.free (memory);
+}
+