Annotation of embedaddon/nginx/src/os/unix/ngx_linux_init.c, revision 1.1
1.1 ! misho 1:
! 2: /*
! 3: * Copyright (C) Igor Sysoev
! 4: * Copyright (C) Nginx, Inc.
! 5: */
! 6:
! 7:
! 8: #include <ngx_config.h>
! 9: #include <ngx_core.h>
! 10:
! 11:
! 12: u_char ngx_linux_kern_ostype[50];
! 13: u_char ngx_linux_kern_osrelease[50];
! 14:
! 15: int ngx_linux_rtsig_max;
! 16:
! 17:
! 18: static ngx_os_io_t ngx_linux_io = {
! 19: ngx_unix_recv,
! 20: ngx_readv_chain,
! 21: ngx_udp_unix_recv,
! 22: ngx_unix_send,
! 23: #if (NGX_HAVE_SENDFILE)
! 24: ngx_linux_sendfile_chain,
! 25: NGX_IO_SENDFILE
! 26: #else
! 27: ngx_writev_chain,
! 28: 0
! 29: #endif
! 30: };
! 31:
! 32:
! 33: ngx_int_t
! 34: ngx_os_specific_init(ngx_log_t *log)
! 35: {
! 36: struct utsname u;
! 37:
! 38: if (uname(&u) == -1) {
! 39: ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, "uname() failed");
! 40: return NGX_ERROR;
! 41: }
! 42:
! 43: (void) ngx_cpystrn(ngx_linux_kern_ostype, (u_char *) u.sysname,
! 44: sizeof(ngx_linux_kern_ostype));
! 45:
! 46: (void) ngx_cpystrn(ngx_linux_kern_osrelease, (u_char *) u.release,
! 47: sizeof(ngx_linux_kern_osrelease));
! 48:
! 49: #if (NGX_HAVE_RTSIG)
! 50: {
! 51: int name[2];
! 52: size_t len;
! 53: ngx_err_t err;
! 54:
! 55: name[0] = CTL_KERN;
! 56: name[1] = KERN_RTSIGMAX;
! 57: len = sizeof(ngx_linux_rtsig_max);
! 58:
! 59: if (sysctl(name, 2, &ngx_linux_rtsig_max, &len, NULL, 0) == -1) {
! 60: err = ngx_errno;
! 61:
! 62: if (err != NGX_ENOTDIR && err != NGX_ENOSYS) {
! 63: ngx_log_error(NGX_LOG_ALERT, log, err,
! 64: "sysctl(KERN_RTSIGMAX) failed");
! 65:
! 66: return NGX_ERROR;
! 67: }
! 68:
! 69: ngx_linux_rtsig_max = 0;
! 70: }
! 71:
! 72: }
! 73: #endif
! 74:
! 75: ngx_os_io = ngx_linux_io;
! 76:
! 77: return NGX_OK;
! 78: }
! 79:
! 80:
! 81: void
! 82: ngx_os_specific_status(ngx_log_t *log)
! 83: {
! 84: ngx_log_error(NGX_LOG_NOTICE, log, 0, "OS: %s %s",
! 85: ngx_linux_kern_ostype, ngx_linux_kern_osrelease);
! 86:
! 87: #if (NGX_HAVE_RTSIG)
! 88: ngx_log_error(NGX_LOG_NOTICE, log, 0, "sysctl(KERN_RTSIGMAX): %d",
! 89: ngx_linux_rtsig_max);
! 90: #endif
! 91: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>