|  |  | 
|  | /* | 
|  | * Copyright (C) Igor Sysoev | 
|  | * Copyright (C) Nginx, Inc. | 
|  | */ | 
|  |  | 
|  |  | 
|  | #ifndef _NGX_SHMEM_H_INCLUDED_ | 
|  | #define _NGX_SHMEM_H_INCLUDED_ | 
|  |  | 
|  |  | 
|  | #include <ngx_config.h> | 
|  | #include <ngx_core.h> | 
|  |  | 
|  |  | 
|  | typedef struct { | 
|  | u_char      *addr; | 
|  | size_t       size; | 
|  | ngx_str_t    name; | 
|  | HANDLE       handle; | 
|  | ngx_log_t   *log; | 
|  | ngx_uint_t   exists;   /* unsigned  exists:1;  */ | 
|  | } ngx_shm_t; | 
|  |  | 
|  |  | 
|  | ngx_int_t ngx_shm_alloc(ngx_shm_t *shm); | 
|  | ngx_int_t ngx_shm_remap(ngx_shm_t *shm, u_char *addr); | 
|  | void ngx_shm_free(ngx_shm_t *shm); | 
|  |  | 
|  | extern ngx_uint_t  ngx_allocation_granularity; | 
|  |  | 
|  |  | 
|  | #endif /* _NGX_SHMEM_H_INCLUDED_ */ |