summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--project/headers.mk1
-rw-r--r--src/internal/mdso_object_impl.h33
2 files changed, 34 insertions, 0 deletions
diff --git a/project/headers.mk b/project/headers.mk
index 7c5de62..7fb8763 100644
--- a/project/headers.mk
+++ b/project/headers.mk
@@ -12,5 +12,6 @@ INTERNAL_HEADERS = \
$(PROJECT_DIR)/src/internal/perk/perk_structs.h \
$(PROJECT_DIR)/src/internal/$(PACKAGE)_driver_impl.h \
$(PROJECT_DIR)/src/internal/$(PACKAGE)_errinfo_impl.h \
+ $(PROJECT_DIR)/src/internal/$(PACKAGE)_object_impl.h \
ALL_HEADERS = $(API_HEADERS) $(INTERNAL_HEADERS)
diff --git a/src/internal/mdso_object_impl.h b/src/internal/mdso_object_impl.h
new file mode 100644
index 0000000..b329ef9
--- /dev/null
+++ b/src/internal/mdso_object_impl.h
@@ -0,0 +1,33 @@
+/****************************************************************/
+/* mdso: midipix dso scavenger */
+/* Copyright (C) 2015--2017 Z. Gilboa */
+/* Released under GPLv2 and GPLv3; see COPYING.MDSO. */
+/****************************************************************/
+
+#include <stdint.h>
+
+static inline void mdso_obj_write_short(unsigned char * ch, uint16_t val)
+{
+ ch[0] = val;
+ ch[1] = val >> 8;
+}
+
+static inline void mdso_obj_write_long(unsigned char * ch, uint32_t val)
+{
+ ch[0] = val;
+ ch[1] = val >> 8;
+ ch[2] = val >> 16;
+ ch[3] = val >> 24;
+}
+
+static inline void mdso_obj_write_quad(unsigned char * ch, uint64_t val)
+{
+ ch[0] = val;
+ ch[1] = val >> 8;
+ ch[2] = val >> 16;
+ ch[3] = val >> 24;
+ ch[4] = val >> 32;
+ ch[5] = val >> 40;
+ ch[6] = val >> 48;
+ ch[7] = val >> 56;
+}