From 58818a2b5d3042426d57846627b476b5f74591b8 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 17 Nov 2018 11:13:47 +0100 Subject: Add memelemscan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- man3/libsimple_memelem.3 | 1 + man3/libsimple_memelemscan.3 | 87 ++++++++++++++++++++++++++++++++++++++++++++ man3/libsimple_memscan.3 | 4 +- man3/memelemscan.3libsimple | 1 + 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 man3/libsimple_memelemscan.3 create mode 120000 man3/memelemscan.3libsimple (limited to 'man3') 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 + +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 -- cgit v1.2.3-70-g09d2