|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
|
|
Packit |
7d6a7d |
## Version 2.x, Copyright (C) 2001, Paul Marquess.
|
|
Packit |
7d6a7d |
## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
## This program is free software; you can redistribute it and/or
|
|
Packit |
7d6a7d |
## modify it under the same terms as Perl itself.
|
|
Packit |
7d6a7d |
##
|
|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=provides
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=implementation
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
#ifdef HAS_MEMCMP
|
|
Packit |
7d6a7d |
__UNDEFINED__ memNE(s1,s2,l) (memcmp(s1,s2,l))
|
|
Packit |
7d6a7d |
__UNDEFINED__ memEQ(s1,s2,l) (!memcmp(s1,s2,l))
|
|
Packit |
7d6a7d |
#else
|
|
Packit |
7d6a7d |
__UNDEFINED__ memNE(s1,s2,l) (bcmp(s1,s2,l))
|
|
Packit |
7d6a7d |
__UNDEFINED__ memEQ(s1,s2,l) (!bcmp(s1,s2,l))
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__ memEQs(s1, l, s2) \
|
|
Packit |
7d6a7d |
(sizeof(s2)-1 == l && memEQ(s1, (s2 ""), (sizeof(s2)-1)))
|
|
Packit |
7d6a7d |
__UNDEFINED__ memNEs(s1, l, s2) !memEQs(s1, l, s2)
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__ MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t))
|
|
Packit |
7d6a7d |
__UNDEFINED__ CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
|
|
Packit |
7d6a7d |
#ifdef HAS_MEMSET
|
|
Packit |
7d6a7d |
__UNDEFINED__ ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t))
|
|
Packit |
7d6a7d |
#else
|
|
Packit |
7d6a7d |
__UNDEFINED__ ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d)
|
|
Packit |
7d6a7d |
#endif
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__ PoisonWith(d,n,t,b) (void)memset((char*)(d), (U8)(b), (n) * sizeof(t))
|
|
Packit |
7d6a7d |
__UNDEFINED__ PoisonNew(d,n,t) PoisonWith(d,n,t,0xAB)
|
|
Packit |
7d6a7d |
__UNDEFINED__ PoisonFree(d,n,t) PoisonWith(d,n,t,0xEF)
|
|
Packit |
7d6a7d |
__UNDEFINED__ Poison(d,n,t) PoisonFree(d,n,t)
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
__UNDEFINED__ Newx(v,n,t) New(0,v,n,t)
|
|
Packit |
7d6a7d |
__UNDEFINED__ Newxc(v,n,t,c) Newc(0,v,n,t,c)
|
|
Packit |
7d6a7d |
__UNDEFINED__ Newxz(v,n,t) Newz(0,v,n,t)
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=xsubs
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
int
|
|
Packit |
7d6a7d |
checkmem()
|
|
Packit |
7d6a7d |
PREINIT:
|
|
Packit |
7d6a7d |
char *p;
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
CODE:
|
|
Packit |
7d6a7d |
RETVAL = 0;
|
|
Packit |
7d6a7d |
Newx(p, 6, char);
|
|
Packit |
7d6a7d |
CopyD("Hello", p, 6, char);
|
|
Packit |
7d6a7d |
if (memEQ(p, "Hello", 6))
|
|
Packit |
7d6a7d |
RETVAL++;
|
|
Packit |
7d6a7d |
ZeroD(p, 6, char);
|
|
Packit |
7d6a7d |
if (memEQ(p, "\0\0\0\0\0\0", 6))
|
|
Packit |
7d6a7d |
RETVAL++;
|
|
Packit |
7d6a7d |
if (memEQs(p, 6, "\0\0\0\0\0\0"))
|
|
Packit |
7d6a7d |
RETVAL++;
|
|
Packit |
7d6a7d |
Poison(p, 6, char);
|
|
Packit |
7d6a7d |
if (memNE(p, "\0\0\0\0\0\0", 6))
|
|
Packit |
7d6a7d |
RETVAL++;
|
|
Packit |
7d6a7d |
if (memNEs(p, 6, "\0\0\0\0\0\0"))
|
|
Packit |
7d6a7d |
RETVAL++;
|
|
Packit |
7d6a7d |
Safefree(p);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
Newxz(p, 6, char);
|
|
Packit |
7d6a7d |
if (memEQ(p, "\0\0\0\0\0\0", 6))
|
|
Packit |
7d6a7d |
RETVAL++;
|
|
Packit |
7d6a7d |
Safefree(p);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
Newxc(p, 3, short, char);
|
|
Packit |
7d6a7d |
Safefree(p);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
OUTPUT:
|
|
Packit |
7d6a7d |
RETVAL
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
=tests plan => 1
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
ok(Devel::PPPort::checkmem(), 6);
|