aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
l---------man3/libsimple_memelemcpy.31
-rw-r--r--man3/libsimple_memelemmove.3111
-rw-r--r--man3/libsimple_rawmemcmove.32
l---------man3/libsimple_rawmemelemcpy.31
-rw-r--r--man3/libsimple_rawmemelemmove.3107
-rw-r--r--memelemcpy.c2
-rw-r--r--memelemmove.c2
-rw-r--r--rawmemelemcpy.c2
-rw-r--r--rawmemelemmove.c2
9 files changed, 225 insertions, 5 deletions
diff --git a/man3/libsimple_memelemcpy.3 b/man3/libsimple_memelemcpy.3
new file mode 120000
index 0000000..39a740f
--- /dev/null
+++ b/man3/libsimple_memelemcpy.3
@@ -0,0 +1 @@
+libsimple_memelemmove.3 \ No newline at end of file
diff --git a/man3/libsimple_memelemmove.3 b/man3/libsimple_memelemmove.3
new file mode 100644
index 0000000..d566b5d
--- /dev/null
+++ b/man3/libsimple_memelemmove.3
@@ -0,0 +1,111 @@
+.TH LIBSIMPLE_MEMELEMMOVE 3 2018-11-25 libsimple
+.SH NAME
+libsimple_memelemmove, libsimple_memelemcpy \- copy or move elements within an array
+.SH SYNOPSIS
+.nf
+#include <libsimple.h>
+
+static inline void *libsimple_memelemmove(void *\fIdest\fP, const void *\fIsrc\fP, int \fIelem\fP, size_t \fIwidth\fP, size_t \fIn\fP);
+static inline void *libsimple_memelemcpy(void *\fIdest\fP, const void *\fIsrc\fP, int \fIelem\fP, size_t \fIwidth\fP, size_t \fIn\fP);
+
+#ifndef memelemmove
+# define memelemmove libsimple_memelemmove
+#endif
+#ifndef memelemcpy
+# define memelemcpy libsimple_memelemcpy
+#endif
+.fi
+.PP
+Link with
+.IR \-lsimple .
+.SH DESCRIPTION
+The
+.BR libsimple_memelemmove ()
+and
+.BR libsimple_memelemcpy ()
+functions copy
+.I n
+elements,
+each with the width
+.IR width ,
+in
+.I src
+to
+.IR dest .
+However the copy stopes after the element
+.I elem
+(with size
+.IR width )
+has been copied.
+.PP
+The arrays may overlap in the
+.BR libsimple_memelemmove ()
+function but not in the
+.BR libsimple_memelemcpy ()
+function.
+.SH RETURN VALUE
+The
+.BR libsimple_memelemmove ()
+and
+.BR libsimple_memelemcpy ()
+functions return a pointer directly behind
+the position of the element
+.I elem
+in
+.I dest
+after it was copied. If the element
+.I elem
+was not copied
+.I NULL
+is returned.
+.SH ERRORS
+The
+.BR libsimple_memelemmove ()
+and
+.BR libsimple_memelemcpy ()
+functions cannot fail.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR libsimple_memelemmove (),
+and
+.BR libsimple_memelemcpy ()
+T} Thread safety MT-Safe
+T{
+.BR libsimple_memelemmove (),
+and
+.BR libsimple_memelemcpy ()
+T} Async-signal safety AS-Safe
+T{
+.BR libsimple_memelemmove (),
+and
+.BR libsimple_memelemcpy ()
+T} Async-cancel safety AC-Safe
+.TE
+.SH EXAMPLES
+None.
+.SH APPLICATION USAGE
+None.
+.SH RATIONALE
+None.
+.SH FUTURE DIRECTIONS
+None.
+.SH NOTES
+None.
+.SH BUGS
+None.
+.SH SEE ALSO
+.BR libsimple_rawmemelemmove (3),
+.BR libsimple_mempmove (3),
+.BR libsimple_mempcpy (3),
+.BR libsimple_strcmove (3),
+.BR libsimple_strncmove (3),
+.BR libsimple_memcmove (3),
+.BR memmove (3),
+.BR memcpy (3)
diff --git a/man3/libsimple_rawmemcmove.3 b/man3/libsimple_rawmemcmove.3
index 0223613..51e9ef4 100644
--- a/man3/libsimple_rawmemcmove.3
+++ b/man3/libsimple_rawmemcmove.3
@@ -23,7 +23,7 @@ The
.BR libsimple_rawmemcmove ()
and
.BR libsimple_rawmemccpy ()
-functions all bytes in
+functions move all bytes in
.I src
to
.IR dest
diff --git a/man3/libsimple_rawmemelemcpy.3 b/man3/libsimple_rawmemelemcpy.3
new file mode 120000
index 0000000..d197b7e
--- /dev/null
+++ b/man3/libsimple_rawmemelemcpy.3
@@ -0,0 +1 @@
+libsimple_rawmemelemmove.3 \ No newline at end of file
diff --git a/man3/libsimple_rawmemelemmove.3 b/man3/libsimple_rawmemelemmove.3
new file mode 100644
index 0000000..cafd956
--- /dev/null
+++ b/man3/libsimple_rawmemelemmove.3
@@ -0,0 +1,107 @@
+.TH LIBSIMPLE_RAWMEMELEMMOVE 3 2018-11-25 libsimple
+.SH NAME
+libsimple_rawmemelemmove, libsimple_rawmemelemcpy \- copy or move elements within an array
+.SH SYNOPSIS
+.nf
+#include <libsimple.h>
+
+static inline void *libsimple_rawmemelemmove(void *\fIdest\fP, const void *\fIsrc\fP, int \fIelem\fP, size_t \fIwidth\fP);
+static inline void *libsimple_rawmemelemcpy(void *\fIdest\fP, const void *\fIsrc\fP, int \fIelem\fP, size_t \fIwidth\fP);
+
+#ifndef rawmemelemmove
+# define rawmemelemmove libsimple_rawmemelemmove
+#endif
+#ifndef rawmemelemcpy
+# define rawmemelemcpy libsimple_rawmemelemcpy
+#endif
+.fi
+.PP
+Link with
+.IR \-lsimple .
+.SH DESCRIPTION
+The
+.BR libsimple_rawmemelemmove ()
+and
+.BR libsimple_rawmemelemcpy ()
+functions copy all elements,
+each with the width
+.IR width ,
+in
+.I src
+to
+.I dest
+until the element
+.I elem
+(with size
+.IR width )
+has been copied.
+.PP
+The arrays may overlap in the
+.BR libsimple_rawmemelemmove ()
+function but not in the
+.BR libsimple_rawmemelemcpy ()
+function.
+.SH RETURN VALUE
+The
+.BR libsimple_rawmemelemmove ()
+and
+.BR libsimple_rawmemelemcpy ()
+functions return a pointer directly behind
+the position of the element
+.I elem
+in
+.I dest
+after it was copied. If the element
+.I elem
+does not exist in
+.IR src ,
+the behaviour is undefined.
+.SH ERRORS
+The
+.BR libsimple_rawmemelemmove ()
+and
+.BR libsimple_rawmemelemcpy ()
+functions cannot fail.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR libsimple_rawmemelemmove (),
+and
+.BR libsimple_rawmemelemcpy ()
+T} Thread safety MT-Safe
+T{
+.BR libsimple_rawmemelemmove (),
+and
+.BR libsimple_rawmemelemcpy ()
+T} Async-signal safety AS-Safe
+T{
+.BR libsimple_rawmemelemmove (),
+and
+.BR libsimple_rawmemelemcpy ()
+T} Async-cancel safety AC-Safe
+.TE
+.SH EXAMPLES
+None.
+.SH APPLICATION USAGE
+None.
+.SH RATIONALE
+None.
+.SH FUTURE DIRECTIONS
+None.
+.SH NOTES
+None.
+.SH BUGS
+None.
+.SH SEE ALSO
+.BR libsimple_memelemmove (3),
+.BR libsimple_mempmove (3),
+.BR libsimple_mempcpy (3),
+.BR libsimple_rawmemcmove (3),
+.BR memmove (3),
+.BR memcpy (3)
diff --git a/memelemcpy.c b/memelemcpy.c
index 41dff83..3fafa65 100644
--- a/memelemcpy.c
+++ b/memelemcpy.c
@@ -63,7 +63,7 @@ memelemcpyx(char *restrict d, const char *restrict s, const char *restrict elem,
void *
-libsimple_memelemcpy(void *restrict d, const void *restrict s, const void *restrict elem, size_t size, size_t n) /* TODO man */
+libsimple_memelemcpy(void *restrict d, const void *restrict s, const void *restrict elem, size_t size, size_t n)
{
switch (size) {
case 0:
diff --git a/memelemmove.c b/memelemmove.c
index d810ba4..7becbc2 100644
--- a/memelemmove.c
+++ b/memelemmove.c
@@ -93,7 +93,7 @@ memelemmovex(char *restrict d, const char *restrict s, const char *restrict elem
void *
-libsimple_memelemmove(void *d, const void *s, const void *restrict elem, size_t width, size_t n) /* TODO man */
+libsimple_memelemmove(void *d, const void *s, const void *restrict elem, size_t width, size_t n)
{
switch (width) {
case 0:
diff --git a/rawmemelemcpy.c b/rawmemelemcpy.c
index ef6b21c..d5e52a2 100644
--- a/rawmemelemcpy.c
+++ b/rawmemelemcpy.c
@@ -54,7 +54,7 @@ rawmemelemcpyx(char *restrict d, const char *restrict s, const char *restrict el
void *
-libsimple_rawmemelemcpy(void *restrict d, const void *restrict s, const void *restrict elem, size_t width) /* TODO man */
+libsimple_rawmemelemcpy(void *restrict d, const void *restrict s, const void *restrict elem, size_t width)
{
switch (width) {
case 0:
diff --git a/rawmemelemmove.c b/rawmemelemmove.c
index 220ec25..8903ae8 100644
--- a/rawmemelemmove.c
+++ b/rawmemelemmove.c
@@ -83,7 +83,7 @@ rawmemelemmovex(char *restrict d, const char *restrict s, const char *restrict e
void *
-libsimple_rawmemelemmove(void *d, const void *s, const void *restrict elem, size_t width) /* TODO man */
+libsimple_rawmemelemmove(void *d, const void *s, const void *restrict elem, size_t width)
{
switch (width) {
case 0: