Diff for /libaitio/src/Attic/mem.c between versions 1.1.4.2 and 1.1.4.3

version 1.1.4.2, 2012/05/23 10:56:03 version 1.1.4.3, 2012/05/23 11:49:35
Line 170  mpool_malloc(mpool_t * __restrict mp, u_int size, cons Line 170  mpool_malloc(mpool_t * __restrict mp, u_int size, cons
         u_int align;          u_int align;
   
         if (!mp) {          if (!mp) {
                sess_SetErr(EINVAL, "Pool not specified");                io_SetErr(EINVAL, "Pool not specified");
                 return NULL;                  return NULL;
         }          }
         if (size > MEM_ALLOC_MAX) {          if (size > MEM_ALLOC_MAX) {
                sess_SetErr(ENOMEM, "Memory size is too large");                io_SetErr(ENOMEM, "Memory size is too large");
                 return NULL;                  return NULL;
         } else          } else
                 size = (size + 3) & ~3; /* must align to 4 because needed room for sentinels */                  size = (size + 3) & ~3; /* must align to 4 because needed room for sentinels */
Line 188  mpool_malloc(mpool_t * __restrict mp, u_int size, cons Line 188  mpool_malloc(mpool_t * __restrict mp, u_int size, cons
                 /* quota */                  /* quota */
                 if (mp->pool_quota.max &&                   if (mp->pool_quota.max && 
                                 (mp->pool_quota.curr + size) > mp->pool_quota.max) {                                  (mp->pool_quota.curr + size) > mp->pool_quota.max) {
                        sess_SetErr(ENOMEM, "Max.allocate memory quota has been reached");                        io_SetErr(ENOMEM, "Max.allocate memory quota has been reached");
                         mpool_unlock(mp);                          mpool_unlock(mp);
                         return NULL;                          return NULL;
                 }                  }
Line 251  mpool_realloc(mpool_t * __restrict mp, void * __restri Line 251  mpool_realloc(mpool_t * __restrict mp, void * __restri
                 return mpool_malloc(mp, newsize, memname);                  return mpool_malloc(mp, newsize, memname);
   
         if (!mp) {          if (!mp) {
                sess_SetErr(EINVAL, "Pool not specified");                io_SetErr(EINVAL, "Pool not specified");
                 return NULL;                  return NULL;
         }          }
         /* check address range & sentinel */          /* check address range & sentinel */
         if (MEM_BADADDR(data) || MEM_CORRUPT(data)) {          if (MEM_BADADDR(data) || MEM_CORRUPT(data)) {
                sess_SetErr(EFAULT, "Corrupted memory address");                io_SetErr(EFAULT, "Corrupted memory address");
                 return NULL;                  return NULL;
         } else {          } else {
                 osize = ((u_int*)data)[-2] * sizeof(u_int);                  osize = ((u_int*)data)[-2] * sizeof(u_int);
Line 264  mpool_realloc(mpool_t * __restrict mp, void * __restri Line 264  mpool_realloc(mpool_t * __restrict mp, void * __restri
         }          }
         /* prepare new size */          /* prepare new size */
         if (newsize > MEM_ALLOC_MAX) {          if (newsize > MEM_ALLOC_MAX) {
                sess_SetErr(ENOMEM, "Memory size is too large");                io_SetErr(ENOMEM, "Memory size is too large");
                 return NULL;                  return NULL;
         } else {          } else {
                 newsize = (newsize + 3) & ~3;   /* must align to 4 because needed room for sentinels */                  newsize = (newsize + 3) & ~3;   /* must align to 4 because needed room for sentinels */
Line 276  mpool_realloc(mpool_t * __restrict mp, void * __restri Line 276  mpool_realloc(mpool_t * __restrict mp, void * __restri
         /* quota */          /* quota */
         if (mp->pool_quota.max &&           if (mp->pool_quota.max && 
                         (mp->pool_quota.curr + ((u_long) newsize - osize)) > mp->pool_quota.max) {                          (mp->pool_quota.curr + ((u_long) newsize - osize)) > mp->pool_quota.max) {
                sess_SetErr(ENOMEM, "Max.allocate memory quota has been reached");                io_SetErr(ENOMEM, "Max.allocate memory quota has been reached");
                 mpool_unlock(mp);                  mpool_unlock(mp);
                 return NULL;                  return NULL;
         }          }
Line 297  mpool_realloc(mpool_t * __restrict mp, void * __restri Line 297  mpool_realloc(mpool_t * __restrict mp, void * __restri
         /* memory block not found! */          /* memory block not found! */
         if (!m) {          if (!m) {
                 mpool_unlock(mp);                  mpool_unlock(mp);
                sess_SetErr(EFAULT, "Memory block not found");                io_SetErr(EFAULT, "Memory block not found");
                 return NULL;                  return NULL;
         }          }
   
Line 354  mpool_purge(mpool_t * __restrict mp, u_int atmost) Line 354  mpool_purge(mpool_t * __restrict mp, u_int atmost)
         struct tagAlloc *m, *tmp;          struct tagAlloc *m, *tmp;
   
         if (!mp) {          if (!mp) {
                sess_SetErr(EINVAL, "Pool not specified");                io_SetErr(EINVAL, "Pool not specified");
                 return -1;                  return -1;
         }          }
   
Line 403  mpool_free(mpool_t * __restrict mp, void * __restrict  Line 403  mpool_free(mpool_t * __restrict mp, void * __restrict 
         struct tagAlloc *m, *tmp;          struct tagAlloc *m, *tmp;
   
         if (!mp) {          if (!mp) {
                sess_SetErr(EINVAL, "Pool not specified");                io_SetErr(EINVAL, "Pool not specified");
                 return -1;                  return -1;
         }          }
         /* check address range & sentinel */          /* check address range & sentinel */
         if (MEM_BADADDR(data) || MEM_CORRUPT(data)) {          if (MEM_BADADDR(data) || MEM_CORRUPT(data)) {
                sess_SetErr(EFAULT, "Corrupted memory address");                io_SetErr(EFAULT, "Corrupted memory address");
                 return -2;                  return -2;
         } else          } else
                 idx = BucketIndex(((u_int*)data)[-2] * sizeof(u_int));                  idx = BucketIndex(((u_int*)data)[-2] * sizeof(u_int));
Line 460  mpool_free2(mpool_t * __restrict mp, u_int size, const Line 460  mpool_free2(mpool_t * __restrict mp, u_int size, const
         struct tagAlloc *m, *tmp;          struct tagAlloc *m, *tmp;
   
         if (!mp || !memname) {          if (!mp || !memname) {
                sess_SetErr(EINVAL, "Pool or memory name is not specified");                io_SetErr(EINVAL, "Pool or memory name is not specified");
                 return -1;                  return -1;
         } else          } else
                 idx = BucketIndex(size);                  idx = BucketIndex(size);

Removed from v.1.1.4.2  
changed lines
  Added in v.1.1.4.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>