diff options
Diffstat (limited to 'src/os')
-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 | ||||
-rw-r--r-- | src/os/win32/ngx_alloc.c | 3 | ||||
-rw-r--r-- | src/os/win32/ngx_alloc.h | 3 | ||||
-rw-r--r-- | src/os/win32/ngx_errno.h | 1 | ||||
-rw-r--r-- | src/os/win32/ngx_win32_init.c | 3 |
7 files changed, 18 insertions, 4 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; } diff --git a/src/os/win32/ngx_alloc.c b/src/os/win32/ngx_alloc.c index 82ede7211..d04c3f37c 100644 --- a/src/os/win32/ngx_alloc.c +++ b/src/os/win32/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/win32/ngx_alloc.h b/src/os/win32/ngx_alloc.h index 9d8d83750..805a41b3c 100644 --- a/src/os/win32/ngx_alloc.h +++ b/src/os/win32/ngx_alloc.h @@ -18,7 +18,8 @@ void *ngx_calloc(size_t size, ngx_log_t *log); #define ngx_free free #define ngx_memalign(alignment, size, log) ngx_alloc(size, log) -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/win32/ngx_errno.h b/src/os/win32/ngx_errno.h index 5f1fab220..588d28879 100644 --- a/src/os/win32/ngx_errno.h +++ b/src/os/win32/ngx_errno.h @@ -21,6 +21,7 @@ typedef DWORD ngx_err_t; #define NGX_EPERM ERROR_ACCESS_DENIED #define NGX_ENOENT ERROR_FILE_NOT_FOUND +#define NGX_ENOMEM ERROR_NOT_ENOUGH_MEMORY #define NGX_EACCES ERROR_ACCESS_DENIED #if 0 #define NGX_EEXIST ERROR_FILE_EXISTS diff --git a/src/os/win32/ngx_win32_init.c b/src/os/win32/ngx_win32_init.c index b4ac2b8b5..9c233c7b3 100644 --- a/src/os/win32/ngx_win32_init.c +++ b/src/os/win32/ngx_win32_init.c @@ -53,6 +53,7 @@ ngx_int_t ngx_os_init(ngx_log_t *log) DWORD bytes; SOCKET s; WSADATA wsd; + ngx_uint_t n; SYSTEM_INFO si; /* get Windows version */ @@ -101,6 +102,8 @@ ngx_int_t ngx_os_init(ngx_log_t *log) ngx_ncpu = si.dwNumberOfProcessors; ngx_cacheline_size = NGX_CPU_CACHE_LINE; + for (n = ngx_pagesize; n >>= 1; ngx_pagesize_shift++) { /* void */ } + /* init Winsock */ |