From 9c6c670d6c66145b63dc0e9be71ba86c68f63e9a Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 20 Oct 2018 21:38:09 +0200 Subject: Add man pages for memeq, mempcpy and mempset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libsimple/mem.h | 28 +++++++++++++++++-- man/libsimple_memeq.3 | 70 +++++++++++++++++++++++++++++++++++++++++++++++ man/libsimple_mempcpy.3 | 70 +++++++++++++++++++++++++++++++++++++++++++++++ man/libsimple_mempset.3 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 238 insertions(+), 2 deletions(-) create mode 100644 man/libsimple_memeq.3 create mode 100644 man/libsimple_mempcpy.3 create mode 100644 man/libsimple_mempset.3 diff --git a/libsimple/mem.h b/libsimple/mem.h index ba5d0fb..1458700 100644 --- a/libsimple/mem.h +++ b/libsimple/mem.h @@ -165,14 +165,30 @@ int libsimple_memends(const void *, size_t, const void *, size_t); #endif +/** + * Checks two arrays of bytes for equality + * + * @param a One of the arrays of bytes + * @param b The other arrays of bytes + * @param n The lengths of the arrays + * @return 1 if the arrays are equal, 0 otherwise + */ _LIBSIMPLE_GCC_ONLY(__attribute__((__pure__, __warn_unused_result__))) -static inline int libsimple_memeq(const void *__s1, const void *__s2, size_t __n) -{ return !memcmp(__s1, __s2, __n); } +static inline int libsimple_memeq(const void *__a, const void *__b, size_t __n) +{ return !memcmp(__a, __b, __n); } #ifndef memeq # define memeq libsimple_memeq #endif +/** + * Copies an array of bytes into another + * + * @param d The array the bytes should be copied into + * @param s The array of bytes that should be copied + * @param n The number of bytes to copy + * @return `&s[n]` + */ _LIBSIMPLE_GCC_ONLY(__attribute__((__warn_unused_result__))) static inline void *libsimple_mempcpy(void *__d, const void *__s, size_t __n) { return &((char *)memcpy(__d, __s, __n))[__n]; } @@ -181,6 +197,14 @@ static inline void *libsimple_mempcpy(void *__d, const void *__s, size_t __n) #endif +/** + * Fill an array of bytes with a specified byte + * + * @param s The array of bytes to fill + * @param c The byte to fill the array with + * @param n The number of bytes to write to `s` + * @return `&s[n]` + */ _LIBSIMPLE_GCC_ONLY(__attribute__((__warn_unused_result__))) static inline void *libsimple_mempset(void *__s, int __c, size_t __n) { return &((char *)memset(__s, __c, __n))[__n]; } diff --git a/man/libsimple_memeq.3 b/man/libsimple_memeq.3 new file mode 100644 index 0000000..fa1ac20 --- /dev/null +++ b/man/libsimple_memeq.3 @@ -0,0 +1,70 @@ +.TH LIBSIMPLE_MEMEQ 3 2018-10-20 libsimple +.SH NAME +libsimple_memeq \- check two memory segments for equality +.SH SYNOPSIS +.nf +#include + +void *libsimple_memeq(const void *\fIa\fP, const void *\fIb\fP, size_t \fIn\fP); + +#ifndef memeq +# define memeq libsimple_memeq +#endif +.fi + +Link with +.IR \-lsimple . +.SH DESCRIPTION +The +.BR libsimple_memeq () +function checks whether the first +.I n +bytes of +.I a +and +.I b +are equal. +.SH RETURN VALUE +The +.BR libsimple_memeq () +function returns 1 one if +.I a +and +.I b +are equal, otherwise it returns 0. +.SH ERRORS +The +.BR libsimple_memeq () +function 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_memeq () +T} Thread safety MT-Safe +T{ +.BR libsimple_memeq () +T} Async-signal safety AS-Safe +T{ +.BR libsimple_memeq () +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 memcmp (3) diff --git a/man/libsimple_mempcpy.3 b/man/libsimple_mempcpy.3 new file mode 100644 index 0000000..40b1e63 --- /dev/null +++ b/man/libsimple_mempcpy.3 @@ -0,0 +1,70 @@ +.TH LIBSIMPLE_MEMPCPY 3 2018-10-20 libsimple +.SH NAME +libsimple_mempcpy \- check two memory segments for equality +.SH SYNOPSIS +.nf +#include + +void *libsimple_mempcpy(void *\fIdest\fP, const void *\fIsrc\fP, size_t \fIn\fP); + +#ifndef mempcpy +# define mempcpy libsimple_mempcpy +#endif +.fi + +Link with +.IR \-lsimple . +.SH DESCRIPTION +The +.BR libsimple_mempcpy () +function copies the first +.I n +bytes of +.I src +into +.IR dest . +.SH RETURN VALUE +The +.BR libsimple_mempcpy () +function returns the pointer +.I dest +with the offset +.I n +(the byte where the copy stopped). +.SH ERRORS +The +.BR libsimple_mempcpy () +function 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_mempcpy () +T} Thread safety MT-Safe +T{ +.BR libsimple_mempcpy () +T} Async-signal safety AS-Safe +T{ +.BR libsimple_mempcpy () +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_mempset (3) +.BR memcpy (3) diff --git a/man/libsimple_mempset.3 b/man/libsimple_mempset.3 new file mode 100644 index 0000000..e4d7fda --- /dev/null +++ b/man/libsimple_mempset.3 @@ -0,0 +1,72 @@ +.TH LIBSIMPLE_MEMPSET 3 2018-10-20 libsimple +.SH NAME +libsimple_mempset \- check two memory segments for equality +.SH SYNOPSIS +.nf +#include + +void *libsimple_mempset(void *\fIs\fP, int \fIc\fP, size_t \fIn\fP); + +#ifndef mempset +# define mempset libsimple_mempset +#endif +.fi + +Link with +.IR \-lsimple . +.SH DESCRIPTION +The +.BR libsimple_mempset () +function fills the first +.I n +bytes of +.I s +with the value +.I c +coverted to a +.BR char . +.SH RETURN VALUE +The +.BR libsimple_mempset () +function returns the pointer +.I s +with the offset +.I n +(the byte where the copy stopped). +.SH ERRORS +The +.BR libsimple_mempset () +function 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_mempset () +T} Thread safety MT-Safe +T{ +.BR libsimple_mempset () +T} Async-signal safety AS-Safe +T{ +.BR libsimple_mempset () +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_mempcpy (3) +.BR memset (3) -- cgit v1.2.3-70-g09d2