diff options
Diffstat (limited to 'src/os/unix')
-rw-r--r-- | src/os/unix/ngx_alloc.c | 3 | ||||
-rw-r--r-- | src/os/unix/ngx_alloc.h | 3 | ||||
-rw-r--r-- | src/os/unix/ngx_posix_init.c | 6 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/os/unix/ngx_alloc.c b/src/os/unix/ngx_alloc.c index 25606e2f6..c38d7d27e 100644 --- a/src/os/unix/ngx_alloc.c +++ b/src/os/unix/ngx_alloc.c @@ -8,7 +8,8 @@ #include <ngx_core.h> -int ngx_pagesize; +ngx_uint_t ngx_pagesize; +ngx_uint_t ngx_pagesize_shift; ngx_uint_t ngx_cacheline_size; diff --git a/src/os/unix/ngx_alloc.h b/src/os/unix/ngx_alloc.h index a88818e2e..8b7b766b2 100644 --- a/src/os/unix/ngx_alloc.h +++ b/src/os/unix/ngx_alloc.h @@ -36,7 +36,8 @@ void *ngx_memalign(size_t alignment, size_t size, ngx_log_t *log); #endif -extern int ngx_pagesize; +extern ngx_uint_t ngx_pagesize; +extern ngx_uint_t ngx_pagesize_shift; extern ngx_uint_t ngx_cacheline_size; diff --git a/src/os/unix/ngx_posix_init.c b/src/os/unix/ngx_posix_init.c index 4844ae52f..39e1b584a 100644 --- a/src/os/unix/ngx_posix_init.c +++ b/src/os/unix/ngx_posix_init.c @@ -30,6 +30,8 @@ ngx_os_io_t ngx_os_io = { ngx_int_t ngx_os_init(ngx_log_t *log) { + ngx_uint_t n; + #if (NGX_HAVE_OS_SPECIFIC_INIT) if (ngx_os_specific_init(log) != NGX_OK) { return NGX_ERROR; @@ -41,6 +43,10 @@ ngx_os_init(ngx_log_t *log) ngx_pagesize = getpagesize(); ngx_cacheline_size = NGX_CPU_CACHE_LINE; + n = ngx_pagesize; + + for (n = ngx_pagesize; n >>= 1; ngx_pagesize_shift++) { /* void */ } + if (ngx_ncpu == 0) { ngx_ncpu = 1; } |