9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
24ddc7 | 1998-03-28 | Henrik Grubbström (Grubba) | |
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | * $Id: pike_memory.h,v 1.17 2000/08/10 18:02:21 grubba Exp $
|
24ddc7 | 1998-03-28 | Henrik Grubbström (Grubba) | | */
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #ifndef MEMORY_H
#define MEMORY_H
#include "global.h"
|
3e625c | 1998-10-11 | Fredrik Hübinette (Hubbe) | | #include "stralloc.h"
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
#define MEMSEARCH_LINKS 512
struct link
{
struct link *next;
INT32 key, offset;
};
enum methods {
no_search,
use_memchr,
memchr_and_memcmp,
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | hubbe_search,
boyer_moore
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | };
struct mem_searcher
{
enum methods method;
char *needle;
SIZE_T needlelen;
unsigned INT32 hsize, max;
struct link links[MEMSEARCH_LINKS];
struct link *set[MEMSEARCH_LINKS];
};
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | struct generic_mem_searcher
{
char needle_shift;
char haystack_shift;
union data_u
{
struct mem_searcher eightbit;
struct other_search_s
{
enum methods method;
void *needle;
SIZE_T needlelen;
int first_char;
} other;
} data;
};
|
421801 | 1999-01-31 | Fredrik Hübinette (Hubbe) | | #include "block_alloc_h.h"
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | #define MEMCHR0 MEMCHR
|
d0e231 | 1999-10-24 | Henrik Grubbström (Grubba) | |
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT int pcharp_memcmp(PCHARP a, PCHARP b, int sz);
PMOD_EXPORT long pcharp_strlen(PCHARP a);
|
51f0e0 | 2000-08-10 | Henrik Grubbström (Grubba) | | PMOD_EXPORT INLINE p_wchar1 *MEMCHR1(p_wchar1 *p, p_wchar1 c, ptrdiff_t e);
PMOD_EXPORT INLINE p_wchar2 *MEMCHR2(p_wchar2 *p, p_wchar2 c, ptrdiff_t e);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void swap(char *a, char *b, INT32 size);
PMOD_EXPORT void reverse(char *memory, INT32 nitems, INT32 size);
PMOD_EXPORT void reorder(char *memory, INT32 nitems, INT32 size,INT32 *order);
|
51f0e0 | 2000-08-10 | Henrik Grubbström (Grubba) | | PMOD_EXPORT size_t hashmem(const unsigned char *a, size_t len, size_t mlen);
PMOD_EXPORT size_t hashstr(const unsigned char *str, ptrdiff_t maxn);
PMOD_EXPORT size_t simple_hashmem(const unsigned char *str, ptrdiff_t len, ptrdiff_t maxn);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void init_memsearch(struct mem_searcher *s,
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | char *needle,
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | size_t needlelen,
size_t max_haystacklen);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT char *memory_search(struct mem_searcher *s,
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | char *haystack,
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | size_t haystacklen);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void init_generic_memsearcher(struct generic_mem_searcher *s,
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | void *needle,
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | size_t needlelen,
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | char needle_shift,
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | size_t estimated_haystack,
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | char haystack_shift);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void *generic_memory_search(struct generic_mem_searcher *s,
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | void *haystack,
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | size_t haystacklen,
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | char haystack_shift);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT char *my_memmem(char *needle,
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | size_t needlelen,
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | char *haystack,
|
c9f031 | 2000-08-10 | Henrik Grubbström (Grubba) | | size_t haystacklen);
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | PMOD_EXPORT void memfill(char *to,
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | INT32 tolen,
char *from,
INT32 fromlen,
INT32 offset);
|
b6bd0a | 2000-08-04 | Henrik Grubbström (Grubba) | | PMOD_EXPORT char *debug_xalloc(size_t size);
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
db4a40 | 1998-10-09 | Fredrik Hübinette (Hubbe) | | #undef BLOCK_ALLOC
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #endif
|