Select Git revision
-
Fredrik Hübinette (Hubbe) authored
Rev: src/dmalloc.h:1.24 Rev: src/encode.c:1.58 Rev: src/gc.c:1.53 Rev: src/gc.h:1.24 Rev: src/interpret.c:1.139 Rev: src/interpret.h:1.40 Rev: src/language.yacc:1.179 Rev: src/object.c:1.99 Rev: src/object.h:1.40 Rev: src/pike_memory.c:1.63 Rev: src/program.c:1.223 Rev: src/program.h:1.86 Rev: src/svalue.c:1.65 Rev: src/svalue.h:1.49
Fredrik Hübinette (Hubbe) authoredRev: src/dmalloc.h:1.24 Rev: src/encode.c:1.58 Rev: src/gc.c:1.53 Rev: src/gc.h:1.24 Rev: src/interpret.c:1.139 Rev: src/interpret.h:1.40 Rev: src/language.yacc:1.179 Rev: src/object.c:1.99 Rev: src/object.h:1.40 Rev: src/pike_memory.c:1.63 Rev: src/program.c:1.223 Rev: src/program.h:1.86 Rev: src/svalue.c:1.65 Rev: src/svalue.h:1.49
pike_memory.h 1.44 KiB
/*\
||| This file a part of Pike, and is copyright by Fredrik Hubinette
||| Pike is distributed as GPL (General Public License)
||| See the files COPYING and DISCLAIMER for more information.
\*/
/*
* $Id: pike_memory.h,v 1.4 1998/03/28 15:05:02 grubba Exp $
*/
#ifndef MEMORY_H
#define MEMORY_H
#include "global.h"
#define MEMSEARCH_LINKS 512
struct link
{
struct link *next;
INT32 key, offset;
};
enum methods {
no_search,
use_memchr,
memchr_and_memcmp,
hubbe_search
};
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];
};
/* Prototypes begin here */
extern char *debug_xalloc(long);
void swap(char *a, char *b, INT32 size);
void reverse(char *memory, INT32 nitems, INT32 size);
void reorder(char *memory, INT32 nitems, INT32 size,INT32 *order);
unsigned INT32 hashmem(const unsigned char *a,INT32 len,INT32 mlen);
unsigned INT32 hashstr(const unsigned char *str,INT32 maxn);
void init_memsearch(struct mem_searcher *s,
char *needle,
SIZE_T needlelen,
SIZE_T max_haystacklen);
char *memory_search(struct mem_searcher *s,
char *haystack,
SIZE_T haystacklen);
char *my_memmem(char *needle,
SIZE_T needlelen,
char *haystack,
SIZE_T haystacklen);
void memfill(char *to,
INT32 tolen,
char *from,
INT32 fromlen,
INT32 offset);
/* Prototypes end here */
#endif