gonzui


Format: Advanced Search

t2ex/t2ex_source/lib/libtk/src_t2ex/smalloc.cbare sourcepermlink (0.02 seconds)

Search this content:

    1: /*
    2:  *----------------------------------------------------------------------
    3:  *    T2EX Software Package
    4:  *
    5:  *    Copyright 2012 by Ken Sakamura.
    6:  *    This software is distributed under the latest version of T-License 2.x.
    7:  *----------------------------------------------------------------------
    8:  *
    9:  *    Released by T-Engine Forum(http://www.t-engine.org/) at 2012/12/12.
   10:  *    Modified by TRON Forum(http://www.tron.org/) at 2015/06/04.
   11:  *
   12:  *----------------------------------------------------------------------
   13:  */
   14: /*
   15:  * This software package is available for use, modification, 
   16:  * and redistribution in accordance with the terms of the attached 
   17:  * T-License 2.x.
   18:  * If you want to redistribute the source code, you need to attach 
   19:  * the T-License 2.x document.
   20:  * There's no obligation to publish the content, and no obligation 
   21:  * to disclose it to the TRON Forum if you have modified the 
   22:  * software package.
   23:  * You can also distribute the modified source code. In this case, 
   24:  * please register the modification to T-Kernel traceability service.
   25:  * People can know the history of modifications by the service, 
   26:  * and can be sure that the version you have inherited some 
   27:  * modification of a particular version or not.
   28:  *
   29:  *    http://trace.tron.org/tk/?lang=en
   30:  *    http://trace.tron.org/tk/?lang=ja
   31:  *
   32:  * As per the provisions of the T-License 2.x, TRON Forum ensures that 
   33:  * the portion of the software that is copyrighted by Ken Sakamura or 
   34:  * the TRON Forum does not infringe the copyrights of a third party.
   35:  * However, it does not make any warranty other than this.
   36:  * DISCLAIMER: TRON Forum and Ken Sakamura shall not be held
   37:  * responsible for any consequences or damages caused directly or
   38:  * indirectly by the use of this software package.
   39:  *
   40:  * The source codes in bsd_source.tar.gz in this software package are 
   41:  * derived from NetBSD or OpenBSD and not covered under T-License 2.x.
   42:  * They need to be changed or redistributed according to the 
   43:  * representation of each source header.
   44:  */
   45: 
   46: /*
   47:  *      @(#)smalloc.c (libtk)
   48:  *
   49:  *      Non-resident shared memory allocation
   50:  */
   51: 
   52: #include "libtk.h"
   53: 
   54: #ifndef SMALLOCTEST
   55: 
   56: EXPORT MACB             _Smacb;            /* Smalloc management information */
   57: EXPORT FastULock        _SmacbLock;    /* Smalloc lock */
   58: 
   59: EXPORT void* Smalloc( size_t size )
   60: {
   61:         void   *p;
   62: 
   63:         UMEMLOCK( return NULL )
   64:         p = _mem_malloc(size, &_Smacb);
   65:         UMEMUNLOCK()
   66: 
   67:         return p;
   68: }
   69: 
   70: EXPORT void* Scalloc( size_t nmemb, size_t size )
   71: {
   72:         void   *p;
   73: 
   74:         UMEMLOCK( return NULL )
   75:         p = _mem_calloc(nmemb, size, &_Smacb);
   76:         UMEMUNLOCK()
   77: 
   78:         return p;
   79: }
   80: 
   81: EXPORT void* Srealloc( void *ptr, size_t size )
   82: {
   83:         void   *p;
   84: 
   85:         UMEMLOCK( return NULL )
   86:         p = _mem_realloc(ptr, size, &_Smacb);
   87:         UMEMUNLOCK()
   88: 
   89:         return p;
   90: }
   91: 
   92: EXPORT void Sfree( void *ptr )
   93: {
   94:         UMEMLOCK( return )
   95:         _mem_free(ptr, &_Smacb);
   96:         UMEMUNLOCK()
   97: }
   98: 
   99: #else /* SMALLOCTEST */
  100: 
  101: EXPORT void Smalloctest( int mode )
  102: {
  103:         UMEMLOCK( return )
  104:         _mem_malloctest(mode, &_Smacb);
  105:         UMEMUNLOCK()
  106: }
  107: 
  108: EXPORT BOOL Smalloccheck( void *ptr )
  109: {
  110:         BOOL   v;
  111: 
  112:         UMEMLOCK( return FALSE )
  113:         v = _mem_malloccheck(ptr, &_Smacb);
  114:         UMEMUNLOCK()
  115: 
  116:         return v;
  117: }
  118: 
  119: #endif /* SMALLOCTEST */