summaryrefslogtreecommitdiff
path: root/support/dktools/dk4memcpl.ctr
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/dk4memcpl.ctr
Initial commit
Diffstat (limited to 'support/dktools/dk4memcpl.ctr')
-rw-r--r--support/dktools/dk4memcpl.ctr52
1 files changed, 52 insertions, 0 deletions
diff --git a/support/dktools/dk4memcpl.ctr b/support/dktools/dk4memcpl.ctr
new file mode 100644
index 0000000000..eb217cccc3
--- /dev/null
+++ b/support/dktools/dk4memcpl.ctr
@@ -0,0 +1,52 @@
+%% options
+
+copyright owner = Dirk Krause
+copyright year = 2015-xxxx
+license = bsd
+
+
+%% header
+
+/** @file dk4memcpl.h Copy memory within buffer from right to left.
+*/
+
+#include "dk4error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Copy memory from right to left.
+ @param dst Destination buffer address.
+ @param src Source buffer address.
+ @param sz Number of bytes to copy.
+ @param erp Error report, may be NULL.
+*/
+void
+dk4mem_cpy_to_left(void *dst, const void *src, size_t sz, dk4_er_t *erp);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+%% module
+
+
+#include "dk4memcpl.h"
+
+
+
+void
+dk4mem_cpy_to_left(void *dst, const void *src, size_t sz, dk4_er_t *erp)
+{
+ unsigned char *dptr;
+ const unsigned char *sptr;
+ if ((NULL != dst) && (NULL != src) && (0 < sz)) {
+ dptr = (unsigned char *)dst; sptr = (const unsigned char *)src;
+ while (0 < sz--) { *(dptr++) = *(sptr++); }
+ } else {
+ dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS);
+ }
+}
+