ngx_list.h

来自「Nginx是一个高性能的HTTP和反向代理服务器」· C头文件 代码 · 共 83 行

H
83
字号
/* * Copyright (C) Igor Sysoev */#ifndef _NGX_LIST_H_INCLUDED_#define _NGX_LIST_H_INCLUDED_#include <ngx_config.h>#include <ngx_core.h>typedef struct ngx_list_part_s  ngx_list_part_t;struct ngx_list_part_s {    void             *elts;    ngx_uint_t        nelts;    ngx_list_part_t  *next;};typedef struct {    ngx_list_part_t  *last;    ngx_list_part_t   part;    size_t            size;    ngx_uint_t        nalloc;    ngx_pool_t       *pool;} ngx_list_t;ngx_list_t *ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size);static ngx_inline ngx_int_tngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, size_t size){    list->part.elts = ngx_palloc(pool, n * size);    if (list->part.elts == NULL) {        return NGX_ERROR;    }    list->part.nelts = 0;    list->part.next = NULL;    list->last = &list->part;    list->size = size;    list->nalloc = n;    list->pool = pool;    return NGX_OK;}/* * *  the iteration through the list: * *  part = &list.part; *  data = part->elts; * *  for (i = 0 ;; i++) { * *      if (i >= part->nelts) { *          if (part->next == NULL) { *              break; *          } * *          part = part->next; *          data = part->elts; *          i = 0; *      } * *      ...  data[i] ... * *  } */void *ngx_list_push(ngx_list_t *list);#endif /* _NGX_LIST_H_INCLUDED_ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?