Blame parts/inc/memory

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);