aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2018-10-20 21:38:09 +0200
committerMattias Andrée <maandree@kth.se>2018-10-20 21:38:09 +0200
commit9c6c670d6c66145b63dc0e9be71ba86c68f63e9a (patch)
tree6e63d1bd82bf005c5f15e6f5f453293bd2aa9bb0
parentAdd man pages for memstarts and memends, and fix highlighting in man pages (diff)
downloadlibsimple-9c6c670d6c66145b63dc0e9be71ba86c68f63e9a.tar.gz
libsimple-9c6c670d6c66145b63dc0e9be71ba86c68f63e9a.tar.bz2
libsimple-9c6c670d6c66145b63dc0e9be71ba86c68f63e9a.tar.xz
Add man pages for memeq, mempcpy and mempset
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--libsimple/mem.h28
-rw-r--r--man/libsimple_memeq.370
-rw-r--r--man/libsimple_mempcpy.370
-rw-r--r--man/libsimple_mempset.372
4 files changed, 238 insertions, 2 deletions
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 <libsimple.h>
+
+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 <libsimple.h>
+
+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 <libsimple.h>
+
+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)