diff options
author | Yu Ping <ping.yu@intel.com> | 2020-02-21 22:36:20 +0800 |
---|---|---|
committer | Florin Coras <fcoras@cisco.com> | 2020-02-22 00:30:48 +0000 |
commit | 54346b61f91008c5098243b588f184ad92ad29c9 (patch) | |
tree | 60116fad568970aee2538a081de0560b0487db8c /nginx/src/core/ngx_array.h | |
parent | 4b0794f139564682503fcd2f59c7bcd3238e6633 (diff) |
initial version of VSAP
Signed-off-by: Yu Ping <ping.yu@intel.com>
Change-Id: I04d9150f0c7607ba20de9096b452476eff1622fc
Diffstat (limited to 'nginx/src/core/ngx_array.h')
-rw-r--r-- | nginx/src/core/ngx_array.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/nginx/src/core/ngx_array.h b/nginx/src/core/ngx_array.h new file mode 100644 index 0000000..a0f2a74 --- /dev/null +++ b/nginx/src/core/ngx_array.h @@ -0,0 +1,53 @@ + +/* + * Copyright (C) Igor Sysoev + * Copyright (C) Nginx, Inc. + */ + + +#ifndef _NGX_ARRAY_H_INCLUDED_ +#define _NGX_ARRAY_H_INCLUDED_ + + +#include <ngx_config.h> +#include <ngx_core.h> + + +typedef struct { + void *elts; + ngx_uint_t nelts; + size_t size; + ngx_uint_t nalloc; + ngx_pool_t *pool; +} ngx_array_t; + + +ngx_array_t *ngx_array_create(ngx_pool_t *p, ngx_uint_t n, size_t size); +void ngx_array_destroy(ngx_array_t *a); +void *ngx_array_push(ngx_array_t *a); +void *ngx_array_push_n(ngx_array_t *a, ngx_uint_t n); + + +static ngx_inline ngx_int_t +ngx_array_init(ngx_array_t *array, ngx_pool_t *pool, ngx_uint_t n, size_t size) +{ + /* + * set "array->nelts" before "array->elts", otherwise MSVC thinks + * that "array->nelts" may be used without having been initialized + */ + + array->nelts = 0; + array->size = size; + array->nalloc = n; + array->pool = pool; + + array->elts = ngx_palloc(pool, n * size); + if (array->elts == NULL) { + return NGX_ERROR; + } + + return NGX_OK; +} + + +#endif /* _NGX_ARRAY_H_INCLUDED_ */ |