aboutsummaryrefslogtreecommitdiffstats
path: root/man3
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2018-11-17 11:13:47 +0100
committerMattias Andrée <maandree@kth.se>2018-11-17 11:13:47 +0100
commit58818a2b5d3042426d57846627b476b5f74591b8 (patch)
treefb8105e0c9bb9cd34d329835f9097a5cabcea699 /man3
parentAdd memscan and memcasescan (diff)
downloadlibsimple-58818a2b5d3042426d57846627b476b5f74591b8.tar.gz
libsimple-58818a2b5d3042426d57846627b476b5f74591b8.tar.bz2
libsimple-58818a2b5d3042426d57846627b476b5f74591b8.tar.xz
Add memelemscan
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'man3')
-rw-r--r--man3/libsimple_memelem.31
-rw-r--r--man3/libsimple_memelemscan.387
-rw-r--r--man3/libsimple_memscan.34
l---------man3/memelemscan.3libsimple1
4 files changed, 92 insertions, 1 deletions
diff --git a/man3/libsimple_memelem.3 b/man3/libsimple_memelem.3
index 833e246..6eb3c0b 100644
--- a/man3/libsimple_memelem.3
+++ b/man3/libsimple_memelem.3
@@ -79,6 +79,7 @@ None.
.SH BUGS
None.
.SH SEE ALSO
+.BR libsimple_memelemscan (3),
.BR libsimple_memrelem (3),
.BR libsimple_memmem (3),
.BR memchr (3)
diff --git a/man3/libsimple_memelemscan.3 b/man3/libsimple_memelemscan.3
new file mode 100644
index 0000000..de70105
--- /dev/null
+++ b/man3/libsimple_memelemscan.3
@@ -0,0 +1,87 @@
+.TH LIBSIMPLE_MEMELEMSCAN 3 2018-11-17 libsimple
+.SH NAME
+libsimple_memelemscan \- find aligned byte string in memory
+.SH SYNOPSIS
+.nf
+#include <libsimple.h>
+
+void *libsimple_memelemscan(const void *\fIhaystack\fP, size_t \fInhaystack\fP, const void *\fIneedle\fP, size_t \fInneedle\fP);
+
+#ifndef memelemscan
+# define memelemscan libsimple_memelemscan
+#endif
+.fi
+.PP
+Link with
+.IR \-lsimple .
+.SH DESCRIPTION
+The
+.BR libsimple_memelemscan ()
+function scans the memory segment
+.IR haystack ,
+with the size
+.IR nhaystack*nneedle ,
+for the first occurence of the byte string
+.I needle
+with the size
+.IR nneedle ,
+and with an offset equivalent to zero modulo
+.IR nneedle .
+If no such character exist in the memory
+segment, the memory segment's end is returned.
+.PP
+The comparison is case-sensitive.
+.SH RETURN VALUE
+The
+.BR libsimple_memelemscan ()
+function returns the pointer
+.I s
+with a minimal offset such that
+.IR !memcmp(r,needle,nneedle) ,
+where
+.I r
+is the returned pointer, and such that
+the offset is equivalent to zero modulo
+.IR nneedle .
+If no such offset exists,
+.I (void *)&((char *)haystack)[nhaystack*nneedle]
+is returned.
+.SH ERRORS
+The
+.BR libsimple_memelemscan ()
+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_memelemscan ()
+T} Thread safety MT-Safe
+T{
+.BR libsimple_memelemscan ()
+T} Async-signal safety AS-Safe
+T{
+.BR libsimple_memelemscan ()
+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_memelem (3),
+.BR libsimple_memrelem (3),
+.BR libsimple_memmem (3),
+.BR libsimple_memchrscan (3)
diff --git a/man3/libsimple_memscan.3 b/man3/libsimple_memscan.3
index c9db7da..0c5d14a 100644
--- a/man3/libsimple_memscan.3
+++ b/man3/libsimple_memscan.3
@@ -25,6 +25,8 @@ for the first occurence of the byte
.I c
(it is converted to a
.BR char ).
+If no such character exist in the memory
+segment, the memory segment's end is returned.
.PP
The comparison is case-sensitive.
.SH RETURN VALUE
@@ -38,7 +40,7 @@ where
.I r
is the returned pointer.
If no such offset exists,
-.B NULL
+.I &r[n]
is returned.
.SH ERRORS
The
diff --git a/man3/memelemscan.3libsimple b/man3/memelemscan.3libsimple
new file mode 120000
index 0000000..3c612db
--- /dev/null
+++ b/man3/memelemscan.3libsimple
@@ -0,0 +1 @@
+libsimple_memelemscan.3 \ No newline at end of file