From aac46f74a6534b050c72f4bf0a469b714879c704 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 25 Nov 2018 15:28:01 +0100 Subject: Add man pages for [raw]memelem{cpy,move} MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- man3/libsimple_memelemcpy.3 | 1 + man3/libsimple_memelemmove.3 | 111 ++++++++++++++++++++++++++++++++++++++++ man3/libsimple_rawmemcmove.3 | 2 +- man3/libsimple_rawmemelemcpy.3 | 1 + man3/libsimple_rawmemelemmove.3 | 107 ++++++++++++++++++++++++++++++++++++++ memelemcpy.c | 2 +- memelemmove.c | 2 +- rawmemelemcpy.c | 2 +- rawmemelemmove.c | 2 +- 9 files changed, 225 insertions(+), 5 deletions(-) create mode 120000 man3/libsimple_memelemcpy.3 create mode 100644 man3/libsimple_memelemmove.3 create mode 120000 man3/libsimple_rawmemelemcpy.3 create mode 100644 man3/libsimple_rawmemelemmove.3 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 + +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 + +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: -- cgit v1.2.3-70-g09d2