diff --git a/api/arceos_posix_api/src/ctypes_gen.rs b/api/arceos_posix_api/src/ctypes_gen.rs deleted file mode 100644 index 9ccd02758..000000000 --- a/api/arceos_posix_api/src/ctypes_gen.rs +++ /dev/null @@ -1,3470 +0,0 @@ -/* automatically generated by rust-bindgen 0.66.1 */ - -#[repr(C)] -#[derive(Default)] -pub struct __IncompleteArrayField(::core::marker::PhantomData, [T; 0]); -impl __IncompleteArrayField { - #[inline] - pub const fn new() -> Self { - __IncompleteArrayField(::core::marker::PhantomData, []) - } - #[inline] - pub fn as_ptr(&self) -> *const T { - self as *const _ as *const T - } - #[inline] - pub fn as_mut_ptr(&mut self) -> *mut T { - self as *mut _ as *mut T - } - #[inline] - pub unsafe fn as_slice(&self, len: usize) -> &[T] { - ::core::slice::from_raw_parts(self.as_ptr(), len) - } - #[inline] - pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] { - ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len) - } -} -impl ::core::fmt::Debug for __IncompleteArrayField { - fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { - fmt.write_str("__IncompleteArrayField") - } -} -pub const EINVAL: u32 = 22; -pub const ITIMER_REAL: u32 = 0; -pub const ITIMER_VIRTUAL: u32 = 1; -pub const ITIMER_PROF: u32 = 2; -pub const SIGCANCEL: u32 = 33; -pub const SIG_BLOCK: u32 = 0; -pub const SIG_UNBLOCK: u32 = 1; -pub const SIG_SETMASK: u32 = 2; -pub const SIGHUP: u32 = 1; -pub const SIGINT: u32 = 2; -pub const SIGQUIT: u32 = 3; -pub const SIGILL: u32 = 4; -pub const SIGTRAP: u32 = 5; -pub const SIGABRT: u32 = 6; -pub const SIGIOT: u32 = 6; -pub const SIGBUS: u32 = 7; -pub const SIGFPE: u32 = 8; -pub const SIGKILL: u32 = 9; -pub const SIGUSR1: u32 = 10; -pub const SIGSEGV: u32 = 11; -pub const SIGUSR2: u32 = 12; -pub const SIGPIPE: u32 = 13; -pub const SIGALRM: u32 = 14; -pub const SIGTERM: u32 = 15; -pub const SIGSTKFLT: u32 = 16; -pub const SIGCHLD: u32 = 17; -pub const SIGCONT: u32 = 18; -pub const SIGSTOP: u32 = 19; -pub const SIGTSTP: u32 = 20; -pub const SIGTTIN: u32 = 21; -pub const SIGTTOU: u32 = 22; -pub const SIGURG: u32 = 23; -pub const SIGXCPU: u32 = 24; -pub const SIGXFSZ: u32 = 25; -pub const SIGVTALRM: u32 = 26; -pub const SIGPROF: u32 = 27; -pub const SIGWINCH: u32 = 28; -pub const SIGIO: u32 = 29; -pub const SIGPOLL: u32 = 29; -pub const SIGPWR: u32 = 30; -pub const SIGSYS: u32 = 31; -pub const SIGUNUSED: u32 = 31; -pub const SIGERR: i32 = -1; -pub const SIGDFL: u32 = 0; -pub const SIGIGN: u32 = 1; -pub const FD_SETSIZE: u32 = 1024; -pub const AT_SYMLINK_NOFOLLOW: u32 = 256; -pub const O_CREAT: u32 = 64; -pub const O_EXCL: u32 = 128; -pub const O_NOCTTY: u32 = 256; -pub const O_TRUNC: u32 = 512; -pub const O_APPEND: u32 = 1024; -pub const O_NONBLOCK: u32 = 2048; -pub const O_DSYNC: u32 = 4096; -pub const O_SYNC: u32 = 1052672; -pub const O_RSYNC: u32 = 1052672; -pub const O_DIRECTORY: u32 = 65536; -pub const O_NOFOLLOW: u32 = 131072; -pub const O_CLOEXEC: u32 = 524288; -pub const O_ASYNC: u32 = 8192; -pub const O_DIRECT: u32 = 16384; -pub const O_LARGEFILE: u32 = 32768; -pub const O_NOATIME: u32 = 262144; -pub const O_PATH: u32 = 2097152; -pub const O_TMPFILE: u32 = 4259840; -pub const O_NDELAY: u32 = 2048; -pub const O_SEARCH: u32 = 2097152; -pub const O_EXEC: u32 = 2097152; -pub const O_TTY_INIT: u32 = 0; -pub const O_ACCMODE: u32 = 2097155; -pub const O_RDONLY: u32 = 0; -pub const O_WRONLY: u32 = 1; -pub const O_RDWR: u32 = 2; -pub const F_DUPFD: u32 = 0; -pub const F_GETFD: u32 = 1; -pub const F_SETFD: u32 = 2; -pub const F_GETFL: u32 = 3; -pub const F_SETFL: u32 = 4; -pub const F_SETOWN: u32 = 8; -pub const F_GETOWN: u32 = 9; -pub const F_SETSIG: u32 = 10; -pub const F_GETSIG: u32 = 11; -pub const F_GETLK: u32 = 5; -pub const F_SETLK: u32 = 6; -pub const F_SETLKW: u32 = 7; -pub const FD_CLOEXEC: u32 = 1; -pub const F_DUPFD_CLOEXEC: u32 = 1030; -pub const F_RDLCK: u32 = 0; -pub const F_WRLCK: u32 = 1; -pub const F_UNLCK: u32 = 2; -pub const F_OK: u32 = 0; -pub const F_ULOCK: u32 = 0; -pub const F_LOCK: u32 = 1; -pub const F_TLOCK: u32 = 2; -pub const F_TEST: u32 = 3; -pub const AT_FDCWD: i32 = -100; -pub const AT_EMPTY_PATH: u32 = 4096; -pub const AT_REMOVEDIR: u32 = 512; -pub const SOCK_STREAM: u32 = 1; -pub const SOCK_DGRAM: u32 = 2; -pub const SOCK_RAW: u32 = 3; -pub const SOCK_RDM: u32 = 4; -pub const SOCK_SEQPACKET: u32 = 5; -pub const SOCK_DCCP: u32 = 6; -pub const SOCK_PACKET: u32 = 10; -pub const SOCK_CLOEXEC: u32 = 524288; -pub const SOCK_NONBLOCK: u32 = 2048; -pub const AF_UNSPEC: u32 = 0; -pub const AF_LOCAL: u32 = 1; -pub const AF_UNIX: u32 = 1; -pub const AF_FILE: u32 = 1; -pub const AF_INET: u32 = 2; -pub const AF_AX25: u32 = 3; -pub const AF_IPX: u32 = 4; -pub const AF_APPLETALK: u32 = 5; -pub const AF_NETROM: u32 = 6; -pub const AF_BRIDGE: u32 = 7; -pub const AF_ATMPVC: u32 = 8; -pub const AF_X25: u32 = 9; -pub const AF_INET6: u32 = 10; -pub const AF_ROSE: u32 = 11; -pub const AF_DECnet: u32 = 12; -pub const AF_NETBEUI: u32 = 13; -pub const AF_SECURITY: u32 = 14; -pub const AF_KEY: u32 = 15; -pub const AF_NETLINK: u32 = 16; -pub const AF_ROUTE: u32 = 16; -pub const AF_PACKET: u32 = 17; -pub const AF_ASH: u32 = 18; -pub const AF_ECONET: u32 = 19; -pub const AF_ATMSVC: u32 = 20; -pub const AF_RDS: u32 = 21; -pub const AF_SNA: u32 = 22; -pub const AF_IRDA: u32 = 23; -pub const AF_PPPOX: u32 = 24; -pub const AF_WANPIPE: u32 = 25; -pub const AF_LLC: u32 = 26; -pub const AF_IB: u32 = 27; -pub const AF_MPLS: u32 = 28; -pub const AF_CAN: u32 = 29; -pub const AF_TIPC: u32 = 30; -pub const AF_BLUETOOTH: u32 = 31; -pub const AF_IUCV: u32 = 32; -pub const AF_RXRPC: u32 = 33; -pub const AF_ISDN: u32 = 34; -pub const AF_PHONET: u32 = 35; -pub const AF_IEEE802154: u32 = 36; -pub const AF_CAIF: u32 = 37; -pub const AF_ALG: u32 = 38; -pub const AF_NFC: u32 = 39; -pub const AF_VSOCK: u32 = 40; -pub const AF_KCM: u32 = 41; -pub const AF_QIPCRTR: u32 = 42; -pub const AF_SMC: u32 = 43; -pub const AF_XDP: u32 = 44; -pub const AF_MAX: u32 = 45; -pub const IPPROTO_IP: u32 = 0; -pub const IPPROTO_HOPOPTS: u32 = 0; -pub const IPPROTO_ICMP: u32 = 1; -pub const IPPROTO_IGMP: u32 = 2; -pub const IPPROTO_IPIP: u32 = 4; -pub const IPPROTO_TCP: u32 = 6; -pub const IPPROTO_EGP: u32 = 8; -pub const IPPROTO_PUP: u32 = 12; -pub const IPPROTO_UDP: u32 = 17; -pub const IPPROTO_IDP: u32 = 22; -pub const IPPROTO_TP: u32 = 29; -pub const IPPROTO_DCCP: u32 = 33; -pub const IPPROTO_IPV6: u32 = 41; -pub const IPPROTO_ROUTING: u32 = 43; -pub const IPPROTO_FRAGMENT: u32 = 44; -pub const IPPROTO_RSVP: u32 = 46; -pub const IPPROTO_GRE: u32 = 47; -pub const IPPROTO_ESP: u32 = 50; -pub const IPPROTO_AH: u32 = 51; -pub const IPPROTO_ICMPV6: u32 = 58; -pub const IPPROTO_NONE: u32 = 59; -pub const IPPROTO_DSTOPTS: u32 = 60; -pub const IPPROTO_MTP: u32 = 92; -pub const IPPROTO_BEETPH: u32 = 94; -pub const IPPROTO_ENCAP: u32 = 98; -pub const IPPROTO_PIM: u32 = 103; -pub const IPPROTO_COMP: u32 = 108; -pub const IPPROTO_SCTP: u32 = 132; -pub const IPPROTO_MH: u32 = 135; -pub const IPPROTO_UDPLITE: u32 = 136; -pub const IPPROTO_MPLS: u32 = 137; -pub const IPPROTO_ETHERNET: u32 = 143; -pub const IPPROTO_RAW: u32 = 255; -pub const IPPROTO_MPTCP: u32 = 262; -pub const IPPROTO_MAX: u32 = 263; -pub const EAI_BADFLAGS: i32 = -1; -pub const EAI_NONAME: i32 = -2; -pub const EAI_AGAIN: i32 = -3; -pub const EAI_FAIL: i32 = -4; -pub const EAI_FAMILY: i32 = -6; -pub const EAI_SOCKTYPE: i32 = -7; -pub const EAI_SERVICE: i32 = -8; -pub const EAI_MEMORY: i32 = -10; -pub const EAI_SYSTEM: i32 = -11; -pub const EAI_OVERFLOW: i32 = -12; -pub const MAXADDRS: u32 = 48; -pub const CLONE_NEWTIME: u32 = 128; -pub const CLONE_VM: u32 = 256; -pub const CLONE_FS: u32 = 512; -pub const CLONE_FILES: u32 = 1024; -pub const CLONE_SIGHAND: u32 = 2048; -pub const CLONE_PIDFD: u32 = 4096; -pub const CLONE_PTRACE: u32 = 8192; -pub const CLONE_VFORK: u32 = 16384; -pub const CLONE_PARENT: u32 = 32768; -pub const CLONE_THREAD: u32 = 65536; -pub const CLONE_NEWNS: u32 = 131072; -pub const CLONE_SYSVSEM: u32 = 262144; -pub const CLONE_SETTLS: u32 = 524288; -pub const CLONE_PARENT_SETTID: u32 = 1048576; -pub const CLONE_CHILD_CLEARTID: u32 = 2097152; -pub const CLONE_DETACHED: u32 = 4194304; -pub const CLONE_UNTRACED: u32 = 8388608; -pub const CLONE_CHILD_SETTID: u32 = 16777216; -pub const CLONE_NEWCGROUP: u32 = 33554432; -pub const CLONE_NEWUTS: u32 = 67108864; -pub const CLONE_NEWIPC: u32 = 134217728; -pub const CLONE_NEWUSER: u32 = 268435456; -pub const CLONE_NEWPID: u32 = 536870912; -pub const CLONE_NEWNET: u32 = 1073741824; -pub const CLONE_IO: u32 = 2147483648; -pub const EPOLL_CLOEXEC: u32 = 524288; -pub const EPOLL_NONBLOCK: u32 = 2048; -pub const EPOLLIN: u32 = 1; -pub const EPOLLPRI: u32 = 2; -pub const EPOLLOUT: u32 = 4; -pub const EPOLLRDNORM: u32 = 64; -pub const EPOLLNVAL: u32 = 32; -pub const EPOLLRDBAND: u32 = 128; -pub const EPOLLWRNORM: u32 = 256; -pub const EPOLLWRBAND: u32 = 512; -pub const EPOLLMSG: u32 = 1024; -pub const EPOLLERR: u32 = 8; -pub const EPOLLHUP: u32 = 16; -pub const EPOLLRDHUP: u32 = 8192; -pub const EPOLLEXCLUSIVE: u32 = 268435456; -pub const EPOLLWAKEUP: u32 = 536870912; -pub const EPOLLONESHOT: u32 = 1073741824; -pub const EPOLLET: u32 = 2147483648; -pub const EPOLL_CTL_ADD: u32 = 1; -pub const EPOLL_CTL_DEL: u32 = 2; -pub const EPOLL_CTL_MOD: u32 = 3; -pub const RLIMIT_CPU: u32 = 0; -pub const RLIMIT_FSIZE: u32 = 1; -pub const RLIMIT_DATA: u32 = 2; -pub const RLIMIT_STACK: u32 = 3; -pub const RLIMIT_CORE: u32 = 4; -pub const RLIMIT_RSS: u32 = 5; -pub const RLIMIT_NPROC: u32 = 6; -pub const RLIMIT_NOFILE: u32 = 7; -pub const RLIMIT_MEMLOCK: u32 = 8; -pub const RLIMIT_AS: u32 = 9; -pub const RLIMIT_LOCKS: u32 = 10; -pub const RLIMIT_SIGPENDING: u32 = 11; -pub const RLIMIT_MSGQUEUE: u32 = 12; -pub const RLIMIT_NICE: u32 = 13; -pub const RLIMIT_RTPRIO: u32 = 14; -pub const RLIMIT_RTTIME: u32 = 15; -pub const RLIMIT_NLIMITS: u32 = 16; -pub const _SC_ARG_MAX: u32 = 0; -pub const _SC_CHILD_MAX: u32 = 1; -pub const _SC_CLK_TCK: u32 = 2; -pub const _SC_NGROUPS_MAX: u32 = 3; -pub const _SC_OPEN_MAX: u32 = 4; -pub const _SC_STREAM_MAX: u32 = 5; -pub const _SC_TZNAME_MAX: u32 = 6; -pub const _SC_JOB_CONTROL: u32 = 7; -pub const _SC_SAVED_IDS: u32 = 8; -pub const _SC_REALTIME_SIGNALS: u32 = 9; -pub const _SC_PRIORITY_SCHEDULING: u32 = 10; -pub const _SC_TIMERS: u32 = 11; -pub const _SC_ASYNCHRONOUS_IO: u32 = 12; -pub const _SC_PRIORITIZED_IO: u32 = 13; -pub const _SC_SYNCHRONIZED_IO: u32 = 14; -pub const _SC_FSYNC: u32 = 15; -pub const _SC_MAPPED_FILES: u32 = 16; -pub const _SC_MEMLOCK: u32 = 17; -pub const _SC_MEMLOCK_RANGE: u32 = 18; -pub const _SC_MEMORY_PROTECTION: u32 = 19; -pub const _SC_MESSAGE_PASSING: u32 = 20; -pub const _SC_SEMAPHORES: u32 = 21; -pub const _SC_SHARED_MEMORY_OBJECTS: u32 = 22; -pub const _SC_AIO_LISTIO_MAX: u32 = 23; -pub const _SC_AIO_MAX: u32 = 24; -pub const _SC_AIO_PRIO_DELTA_MAX: u32 = 25; -pub const _SC_DELAYTIMER_MAX: u32 = 26; -pub const _SC_MQ_OPEN_MAX: u32 = 27; -pub const _SC_MQ_PRIO_MAX: u32 = 28; -pub const _SC_VERSION: u32 = 29; -pub const _SC_PAGE_SIZE: u32 = 30; -pub const _SC_PAGESIZE: u32 = 30; -pub const _SC_RTSIG_MAX: u32 = 31; -pub const _SC_SEM_NSEMS_MAX: u32 = 32; -pub const _SC_SEM_VALUE_MAX: u32 = 33; -pub const _SC_SIGQUEUE_MAX: u32 = 34; -pub const _SC_TIMER_MAX: u32 = 35; -pub const _SC_BC_BASE_MAX: u32 = 36; -pub const _SC_BC_DIM_MAX: u32 = 37; -pub const _SC_BC_SCALE_MAX: u32 = 38; -pub const _SC_BC_STRING_MAX: u32 = 39; -pub const _SC_COLL_WEIGHTS_MAX: u32 = 40; -pub const _SC_EXPR_NEST_MAX: u32 = 42; -pub const _SC_LINE_MAX: u32 = 43; -pub const _SC_RE_DUP_MAX: u32 = 44; -pub const _SC_2_VERSION: u32 = 46; -pub const _SC_2_C_BIND: u32 = 47; -pub const _SC_2_C_DEV: u32 = 48; -pub const _SC_2_FORT_DEV: u32 = 49; -pub const _SC_2_FORT_RUN: u32 = 50; -pub const _SC_2_SW_DEV: u32 = 51; -pub const _SC_2_LOCALEDEF: u32 = 52; -pub const _SC_UIO_MAXIOV: u32 = 60; -pub const _SC_IOV_MAX: u32 = 60; -pub const _SC_THREADS: u32 = 67; -pub const _SC_THREAD_SAFE_FUNCTIONS: u32 = 68; -pub const _SC_GETGR_R_SIZE_MAX: u32 = 69; -pub const _SC_GETPW_R_SIZE_MAX: u32 = 70; -pub const _SC_LOGIN_NAME_MAX: u32 = 71; -pub const _SC_TTY_NAME_MAX: u32 = 72; -pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: u32 = 73; -pub const _SC_THREAD_KEYS_MAX: u32 = 74; -pub const _SC_THREAD_STACK_MIN: u32 = 75; -pub const _SC_THREAD_THREADS_MAX: u32 = 76; -pub const _SC_THREAD_ATTR_STACKADDR: u32 = 77; -pub const _SC_THREAD_ATTR_STACKSIZE: u32 = 78; -pub const _SC_THREAD_PRIORITY_SCHEDULING: u32 = 79; -pub const _SC_THREAD_PRIO_INHERIT: u32 = 80; -pub const _SC_THREAD_PRIO_PROTECT: u32 = 81; -pub const _SC_THREAD_PROCESS_SHARED: u32 = 82; -pub const _SC_NPROCESSORS_CONF: u32 = 83; -pub const _SC_NPROCESSORS_ONLN: u32 = 84; -pub const _SC_PHYS_PAGES: u32 = 85; -pub const _SC_AVPHYS_PAGES: u32 = 86; -pub const _SC_ATEXIT_MAX: u32 = 87; -pub const _SC_PASS_MAX: u32 = 88; -pub const _SC_XOPEN_VERSION: u32 = 89; -pub const _SC_XOPEN_XCU_VERSION: u32 = 90; -pub const _SC_XOPEN_UNIX: u32 = 91; -pub const _SC_XOPEN_CRYPT: u32 = 92; -pub const _SC_XOPEN_ENH_I18N: u32 = 93; -pub const _SC_XOPEN_SHM: u32 = 94; -pub const _SC_2_CHAR_TERM: u32 = 95; -pub const _SC_2_UPE: u32 = 97; -pub const _SC_XOPEN_XPG2: u32 = 98; -pub const _SC_XOPEN_XPG3: u32 = 99; -pub const _SC_XOPEN_XPG4: u32 = 100; -pub const _SC_NZERO: u32 = 109; -pub const _SC_XBS5_ILP32_OFF32: u32 = 125; -pub const _SC_XBS5_ILP32_OFFBIG: u32 = 126; -pub const _SC_XBS5_LP64_OFF64: u32 = 127; -pub const _SC_XBS5_LPBIG_OFFBIG: u32 = 128; -pub const _SC_XOPEN_LEGACY: u32 = 129; -pub const _SC_XOPEN_REALTIME: u32 = 130; -pub const _SC_XOPEN_REALTIME_THREADS: u32 = 131; -pub const _SC_ADVISORY_INFO: u32 = 132; -pub const _SC_BARRIERS: u32 = 133; -pub const _SC_CLOCK_SELECTION: u32 = 137; -pub const _SC_CPUTIME: u32 = 138; -pub const _SC_THREAD_CPUTIME: u32 = 139; -pub const _SC_MONOTONIC_CLOCK: u32 = 149; -pub const _SC_READER_WRITER_LOCKS: u32 = 153; -pub const _SC_SPIN_LOCKS: u32 = 154; -pub const _SC_REGEXP: u32 = 155; -pub const _SC_SHELL: u32 = 157; -pub const _SC_SPAWN: u32 = 159; -pub const _SC_SPORADIC_SERVER: u32 = 160; -pub const _SC_THREAD_SPORADIC_SERVER: u32 = 161; -pub const _SC_TIMEOUTS: u32 = 164; -pub const _SC_TYPED_MEMORY_OBJECTS: u32 = 165; -pub const _SC_2_PBS: u32 = 168; -pub const _SC_2_PBS_ACCOUNTING: u32 = 169; -pub const _SC_2_PBS_LOCATE: u32 = 170; -pub const _SC_2_PBS_MESSAGE: u32 = 171; -pub const _SC_2_PBS_TRACK: u32 = 172; -pub const _SC_SYMLOOP_MAX: u32 = 173; -pub const _SC_STREAMS: u32 = 174; -pub const _SC_2_PBS_CHECKPOINT: u32 = 175; -pub const _SC_V6_ILP32_OFF32: u32 = 176; -pub const _SC_V6_ILP32_OFFBIG: u32 = 177; -pub const _SC_V6_LP64_OFF64: u32 = 178; -pub const _SC_V6_LPBIG_OFFBIG: u32 = 179; -pub const _SC_HOST_NAME_MAX: u32 = 180; -pub const _SC_TRACE: u32 = 181; -pub const _SC_TRACE_EVENT_FILTER: u32 = 182; -pub const _SC_TRACE_INHERIT: u32 = 183; -pub const _SC_TRACE_LOG: u32 = 184; -pub const _SC_IPV6: u32 = 235; -pub const _SC_RAW_SOCKETS: u32 = 236; -pub const _SC_V7_ILP32_OFF32: u32 = 237; -pub const _SC_V7_ILP32_OFFBIG: u32 = 238; -pub const _SC_V7_LP64_OFF64: u32 = 239; -pub const _SC_V7_LPBIG_OFFBIG: u32 = 240; -pub const _SC_SS_REPL_MAX: u32 = 241; -pub const _SC_TRACE_EVENT_NAME_MAX: u32 = 242; -pub const _SC_TRACE_NAME_MAX: u32 = 243; -pub const _SC_TRACE_SYS_MAX: u32 = 244; -pub const _SC_TRACE_USER_EVENT_MAX: u32 = 245; -pub const _SC_XOPEN_STREAMS: u32 = 246; -pub const _SC_THREAD_ROBUST_PRIO_INHERIT: u32 = 247; -pub const _SC_THREAD_ROBUST_PRIO_PROTECT: u32 = 248; -pub type clockid_t = ::core::ffi::c_int; -pub type size_t = usize; -pub type ssize_t = isize; -pub type mode_t = ::core::ffi::c_uint; -pub type nlink_t = u32; -pub type off_t = i64; -pub type ino_t = u64; -pub type dev_t = u64; -pub type blksize_t = ::core::ffi::c_long; -pub type blkcnt_t = i64; -pub type pid_t = ::core::ffi::c_int; -pub type uid_t = ::core::ffi::c_uint; -pub type gid_t = ::core::ffi::c_uint; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct __sigset_t { - pub __bits: [::core::ffi::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout___sigset_t() { - const UNINIT: ::core::mem::MaybeUninit<__sigset_t> = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::<__sigset_t>(), - 128usize, - concat!("Size of: ", stringify!(__sigset_t)) - ); - assert_eq!( - ::core::mem::align_of::<__sigset_t>(), - 8usize, - concat!("Alignment of ", stringify!(__sigset_t)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(__sigset_t), - "::", - stringify!(__bits) - ) - ); -} -pub type sigset_t = __sigset_t; -pub type pthread_t = *mut ::core::ffi::c_void; -pub type time_t = ::core::ffi::c_longlong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct timeval { - pub tv_sec: time_t, - pub tv_usec: ::core::ffi::c_long, -} -#[test] -fn bindgen_test_layout_timeval() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timeval)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timeval)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timeval), - "::", - stringify!(tv_usec) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct timespec { - pub tv_sec: time_t, - pub tv_nsec: ::core::ffi::c_long, -} -#[test] -fn bindgen_test_layout_timespec() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(timespec)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(timespec)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_sec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(timespec), - "::", - stringify!(tv_nsec) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct itimerval { - pub it_interval: timeval, - pub it_value: timeval, -} -#[test] -fn bindgen_test_layout_itimerval() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(itimerval)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(itimerval)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).it_interval) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_interval) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).it_value) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(itimerval), - "::", - stringify!(it_value) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct pthread_condattr_t { - pub __attr: ::core::ffi::c_uint, -} -#[test] -fn bindgen_test_layout_pthread_condattr_t() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_condattr_t)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_condattr_t), - "::", - stringify!(__attr) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct pthread_cond_t { - pub __l: [::core::ffi::c_long; 5usize], -} -#[test] -fn bindgen_test_layout_pthread_cond_t() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 40usize, - concat!("Size of: ", stringify!(pthread_cond_t)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_cond_t)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__l) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_cond_t), - "::", - stringify!(__l) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct pthread_mutex_t { - pub __l: [::core::ffi::c_long; 6usize], -} -#[test] -fn bindgen_test_layout_pthread_mutex_t() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_mutex_t)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__l) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutex_t), - "::", - stringify!(__l) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct pthread_mutexattr_t { - pub __attr: ::core::ffi::c_uint, -} -#[test] -fn bindgen_test_layout_pthread_mutexattr_t() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pthread_mutexattr_t)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__attr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_mutexattr_t), - "::", - stringify!(__attr) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct pthread_attr_t { - pub __u: pthread_attr_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union pthread_attr_t__bindgen_ty_1 { - pub __i: [::core::ffi::c_int; 14usize], - pub __vi: [::core::ffi::c_int; 14usize], - pub __s: [::core::ffi::c_ulong; 7usize], -} -#[test] -fn bindgen_test_layout_pthread_attr_t__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__i) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t__bindgen_ty_1), - "::", - stringify!(__i) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__vi) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t__bindgen_ty_1), - "::", - stringify!(__vi) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__s) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t__bindgen_ty_1), - "::", - stringify!(__s) - ) - ); -} -impl Default for pthread_attr_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_pthread_attr_t() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(pthread_attr_t)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(pthread_attr_t)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__u) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pthread_attr_t), - "::", - stringify!(__u) - ) - ); -} -impl Default for pthread_attr_t { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type pthread_key_t = ::core::ffi::c_uint; -#[repr(C)] -#[derive(Copy, Clone)] -pub union sigval { - pub sival_int: ::core::ffi::c_int, - pub sival_ptr: *mut ::core::ffi::c_void, -} -#[test] -fn bindgen_test_layout_sigval() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sigval)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sigval)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sival_int) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sigval), - "::", - stringify!(sival_int) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sival_ptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sigval), - "::", - stringify!(sival_ptr) - ) - ); -} -impl Default for sigval { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct siginfo_t { - pub si_signo: ::core::ffi::c_int, - pub si_errno: ::core::ffi::c_int, - pub si_code: ::core::ffi::c_int, - pub __si_fields: siginfo_t__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union siginfo_t__bindgen_ty_1 { - pub __pad: [::core::ffi::c_char; 112usize], - pub __si_common: siginfo_t__bindgen_ty_1__bindgen_ty_1, - pub __sigfault: siginfo_t__bindgen_ty_1__bindgen_ty_2, - pub __sigpoll: siginfo_t__bindgen_ty_1__bindgen_ty_3, - pub __sigsys: siginfo_t__bindgen_ty_1__bindgen_ty_4, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1 { - pub __first: siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, - pub __second: siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - pub __piduid: siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, - pub __timer: siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - pub si_pid: ::core::ffi::c_int, - pub si_uid: ::core::ffi::c_uint, -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit< - siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, - > = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::( - ), - 4usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_pid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(si_pid) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_uid) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(si_uid) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { - pub si_timerid: ::core::ffi::c_int, - pub si_overrun: ::core::ffi::c_int, -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit< - siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2, - > = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::core::mem::align_of::( - ), - 4usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_timerid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(si_timerid) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_overrun) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(si_overrun) - ) - ); -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__piduid) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(__piduid) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__timer) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(__timer) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { - pub si_value: sigval, - pub __sigchld: siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { - pub si_status: ::core::ffi::c_int, - pub si_utime: ::core::ffi::c_long, - pub si_stime: ::core::ffi::c_long, -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit< - siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, - > = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::( - ), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_status) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1), - "::", - stringify!(si_status) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_utime) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1), - "::", - stringify!(si_utime) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_stime) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1), - "::", - stringify!(si_stime) - ) - ); -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 24usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_value) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(si_value) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__sigchld) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(__sigchld) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__first) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(__first) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__second) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(__second) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_2 { - pub si_addr: *mut ::core::ffi::c_void, - pub si_addr_lsb: ::core::ffi::c_short, - pub __first: siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { - pub __addr_bnd: siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, - pub si_pkey: ::core::ffi::c_uint, -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { - pub si_lower: *mut ::core::ffi::c_void, - pub si_upper: *mut ::core::ffi::c_void, -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit< - siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1, - > = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::( - ), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_lower) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(si_lower) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_upper) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1), - "::", - stringify!(si_upper) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__addr_bnd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1), - "::", - stringify!(__addr_bnd) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_pkey) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1), - "::", - stringify!(si_pkey) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_2() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 32usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(si_addr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_addr_lsb) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(si_addr_lsb) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__first) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_2), - "::", - stringify!(__first) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_2 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_3 { - pub si_band: ::core::ffi::c_long, - pub si_fd: ::core::ffi::c_int, -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_3() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_band) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(si_band) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_fd) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_3), - "::", - stringify!(si_fd) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct siginfo_t__bindgen_ty_1__bindgen_ty_4 { - pub si_call_addr: *mut ::core::ffi::c_void, - pub si_syscall: ::core::ffi::c_int, - pub si_arch: ::core::ffi::c_uint, -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1__bindgen_ty_4() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!( - "Size of: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!( - "Alignment of ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_call_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(si_call_addr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_syscall) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(si_syscall) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_arch) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1__bindgen_ty_4), - "::", - stringify!(si_arch) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1__bindgen_ty_4 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_siginfo_t__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(siginfo_t__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(siginfo_t__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1), - "::", - stringify!(__pad) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__si_common) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1), - "::", - stringify!(__si_common) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__sigfault) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1), - "::", - stringify!(__sigfault) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__sigpoll) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1), - "::", - stringify!(__sigpoll) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__sigsys) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t__bindgen_ty_1), - "::", - stringify!(__sigsys) - ) - ); -} -impl Default for siginfo_t__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_siginfo_t() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(siginfo_t)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(siginfo_t)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_signo) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t), - "::", - stringify!(si_signo) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_errno) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t), - "::", - stringify!(si_errno) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).si_code) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t), - "::", - stringify!(si_code) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__si_fields) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(siginfo_t), - "::", - stringify!(__si_fields) - ) - ); -} -impl Default for siginfo_t { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct sigaction { - pub __sa_handler: sigaction__bindgen_ty_1, - pub sa_mask: sigset_t, - pub sa_flags: ::core::ffi::c_int, - pub sa_restorer: ::core::option::Option, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union sigaction__bindgen_ty_1 { - pub sa_handler: ::core::option::Option, - pub sa_sigaction: ::core::option::Option< - unsafe extern "C" fn( - arg1: ::core::ffi::c_int, - arg2: *mut siginfo_t, - arg3: *mut ::core::ffi::c_void, - ), - >, -} -#[test] -fn bindgen_test_layout_sigaction__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(sigaction__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sigaction__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa_handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sigaction__bindgen_ty_1), - "::", - stringify!(sa_handler) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa_sigaction) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sigaction__bindgen_ty_1), - "::", - stringify!(sa_sigaction) - ) - ); -} -impl Default for sigaction__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_sigaction() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 152usize, - concat!("Size of: ", stringify!(sigaction)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sigaction)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__sa_handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sigaction), - "::", - stringify!(__sa_handler) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa_mask) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sigaction), - "::", - stringify!(sa_mask) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa_flags) as usize - ptr as usize }, - 136usize, - concat!( - "Offset of field: ", - stringify!(sigaction), - "::", - stringify!(sa_flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa_restorer) as usize - ptr as usize }, - 144usize, - concat!( - "Offset of field: ", - stringify!(sigaction), - "::", - stringify!(sa_restorer) - ) - ); -} -impl Default for sigaction { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct fd_set { - pub fds_bits: [::core::ffi::c_ulong; 16usize], -} -#[test] -fn bindgen_test_layout_fd_set() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(fd_set)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(fd_set)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).fds_bits) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(fd_set), - "::", - stringify!(fds_bits) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct k_sigaction { - pub handler: ::core::option::Option, - pub flags: ::core::ffi::c_ulong, - pub restorer: ::core::option::Option, - pub mask: [::core::ffi::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout_k_sigaction() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(k_sigaction)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(k_sigaction)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).handler) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(k_sigaction), - "::", - stringify!(handler) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).flags) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(k_sigaction), - "::", - stringify!(flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).restorer) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(k_sigaction), - "::", - stringify!(restorer) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mask) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(k_sigaction), - "::", - stringify!(mask) - ) - ); -} -pub type socklen_t = ::core::ffi::c_uint; -pub type sa_family_t = ::core::ffi::c_ushort; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct msghdr { - pub msg_name: *mut ::core::ffi::c_void, - pub msg_namelen: socklen_t, - pub msg_iov: *mut iovec, - pub msg_iovlen: ::core::ffi::c_int, - pub __pad1: ::core::ffi::c_int, - pub msg_control: *mut ::core::ffi::c_void, - pub msg_controllen: socklen_t, - pub __pad2: ::core::ffi::c_int, - pub msg_flags: ::core::ffi::c_int, -} -#[test] -fn bindgen_test_layout_msghdr() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 56usize, - concat!("Size of: ", stringify!(msghdr)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(msghdr)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).msg_name) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_name) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).msg_namelen) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_namelen) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).msg_iov) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iov) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).msg_iovlen) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_iovlen) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(__pad1) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).msg_control) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_control) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).msg_controllen) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_controllen) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).msg_flags) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(msghdr), - "::", - stringify!(msg_flags) - ) - ); -} -impl Default for msghdr { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct sockaddr { - pub sa_family: sa_family_t, - pub sa_data: [::core::ffi::c_char; 14usize], -} -#[test] -fn bindgen_test_layout_sockaddr() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr)) - ); - assert_eq!( - ::core::mem::align_of::(), - 2usize, - concat!("Alignment of ", stringify!(sockaddr)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_family) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa_data) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr), - "::", - stringify!(sa_data) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct sockaddr_storage { - pub ss_family: sa_family_t, - pub __ss_padding: [::core::ffi::c_char; 118usize], - pub __ss_align: ::core::ffi::c_ulong, -} -#[test] -fn bindgen_test_layout_sockaddr_storage() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 128usize, - concat!("Size of: ", stringify!(sockaddr_storage)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sockaddr_storage)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ss_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(ss_family) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__ss_padding) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_padding) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__ss_align) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_storage), - "::", - stringify!(__ss_align) - ) - ); -} -impl Default for sockaddr_storage { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type in_port_t = u16; -pub type in_addr_t = u32; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct in_addr { - pub s_addr: in_addr_t, -} -#[test] -fn bindgen_test_layout_in_addr() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 4usize, - concat!("Size of: ", stringify!(in_addr)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(in_addr)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).s_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(in_addr), - "::", - stringify!(s_addr) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct sockaddr_in { - pub sin_family: sa_family_t, - pub sin_port: in_port_t, - pub sin_addr: in_addr, - pub sin_zero: [u8; 8usize], -} -#[test] -fn bindgen_test_layout_sockaddr_in() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(sockaddr_in)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sockaddr_in)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in), - "::", - stringify!(sin_family) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin_port) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in), - "::", - stringify!(sin_port) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin_addr) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in), - "::", - stringify!(sin_addr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin_zero) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in), - "::", - stringify!(sin_zero) - ) - ); -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct in6_addr { - pub __in6_union: in6_addr__bindgen_ty_1, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union in6_addr__bindgen_ty_1 { - pub __s6_addr: [u8; 16usize], - pub __s6_addr16: [u16; 8usize], - pub __s6_addr32: [u32; 4usize], -} -#[test] -fn bindgen_test_layout_in6_addr__bindgen_ty_1() { - const UNINIT: ::core::mem::MaybeUninit = - ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(in6_addr__bindgen_ty_1)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(in6_addr__bindgen_ty_1)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__s6_addr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(in6_addr__bindgen_ty_1), - "::", - stringify!(__s6_addr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__s6_addr16) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(in6_addr__bindgen_ty_1), - "::", - stringify!(__s6_addr16) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__s6_addr32) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(in6_addr__bindgen_ty_1), - "::", - stringify!(__s6_addr32) - ) - ); -} -impl Default for in6_addr__bindgen_ty_1 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_in6_addr() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(in6_addr)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(in6_addr)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__in6_union) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(in6_addr), - "::", - stringify!(__in6_union) - ) - ); -} -impl Default for in6_addr { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct sockaddr_in6 { - pub sin6_family: sa_family_t, - pub sin6_port: in_port_t, - pub sin6_flowinfo: u32, - pub sin6_addr: in6_addr, - pub sin6_scope_id: u32, -} -#[test] -fn bindgen_test_layout_sockaddr_in6() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(sockaddr_in6)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(sockaddr_in6)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin6_family) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in6), - "::", - stringify!(sin6_family) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin6_port) as usize - ptr as usize }, - 2usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in6), - "::", - stringify!(sin6_port) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin6_flowinfo) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in6), - "::", - stringify!(sin6_flowinfo) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin6_addr) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in6), - "::", - stringify!(sin6_addr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin6_scope_id) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(sockaddr_in6), - "::", - stringify!(sin6_scope_id) - ) - ); -} -impl Default for sockaddr_in6 { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct addrinfo { - pub ai_flags: ::core::ffi::c_int, - pub ai_family: ::core::ffi::c_int, - pub ai_socktype: ::core::ffi::c_int, - pub ai_protocol: ::core::ffi::c_int, - pub ai_addrlen: socklen_t, - pub ai_addr: *mut sockaddr, - pub ai_canonname: *mut ::core::ffi::c_char, - pub ai_next: *mut addrinfo, -} -#[test] -fn bindgen_test_layout_addrinfo() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(addrinfo)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(addrinfo)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_flags) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_flags) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_family) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_family) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_socktype) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_socktype) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_protocol) as usize - ptr as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_protocol) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_addrlen) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_addrlen) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_addr) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_addr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_canonname) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_canonname) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai_next) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(addrinfo), - "::", - stringify!(ai_next) - ) - ); -} -impl Default for addrinfo { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Copy, Clone)] -pub struct aibuf { - pub ai: addrinfo, - pub sa: aibuf_sa, - pub lock: [::core::ffi::c_int; 1usize], - pub slot: ::core::ffi::c_short, - pub ref_: ::core::ffi::c_short, -} -#[repr(C)] -#[derive(Copy, Clone)] -pub union aibuf_sa { - pub sin: sockaddr_in, - pub sin6: sockaddr_in6, -} -#[test] -fn bindgen_test_layout_aibuf_sa() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 28usize, - concat!("Size of: ", stringify!(aibuf_sa)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(aibuf_sa)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(aibuf_sa), - "::", - stringify!(sin) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sin6) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(aibuf_sa), - "::", - stringify!(sin6) - ) - ); -} -impl Default for aibuf_sa { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[test] -fn bindgen_test_layout_aibuf() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 88usize, - concat!("Size of: ", stringify!(aibuf)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(aibuf)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ai) as usize - ptr as usize }, - 0usize, - concat!("Offset of field: ", stringify!(aibuf), "::", stringify!(ai)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sa) as usize - ptr as usize }, - 48usize, - concat!("Offset of field: ", stringify!(aibuf), "::", stringify!(sa)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).lock) as usize - ptr as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(aibuf), - "::", - stringify!(lock) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).slot) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(aibuf), - "::", - stringify!(slot) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ref_) as usize - ptr as usize }, - 82usize, - concat!( - "Offset of field: ", - stringify!(aibuf), - "::", - stringify!(ref_) - ) - ); -} -impl Default for aibuf { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct pollfd { - pub fd: ::core::ffi::c_int, - pub events: ::core::ffi::c_short, - pub revents: ::core::ffi::c_short, -} -#[test] -fn bindgen_test_layout_pollfd() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(pollfd)) - ); - assert_eq!( - ::core::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(pollfd)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(pollfd), - "::", - stringify!(fd) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(pollfd), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).revents) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(pollfd), - "::", - stringify!(revents) - ) - ); -} -pub type nfds_t = ::core::ffi::c_ulong; -#[repr(C)] -#[derive(Copy, Clone)] -pub union epoll_data { - pub ptr: *mut ::core::ffi::c_void, - pub fd: ::core::ffi::c_int, - pub u32_: u32, - pub u64_: u64, -} -#[test] -fn bindgen_test_layout_epoll_data() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 8usize, - concat!("Size of: ", stringify!(epoll_data)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(epoll_data)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).ptr) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(epoll_data), - "::", - stringify!(ptr) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).fd) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(epoll_data), - "::", - stringify!(fd) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).u32_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(epoll_data), - "::", - stringify!(u32_) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).u64_) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(epoll_data), - "::", - stringify!(u64_) - ) - ); -} -impl Default for epoll_data { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type epoll_data_t = epoll_data; -#[repr(C)] -#[derive(Copy, Clone)] -pub struct epoll_event { - pub events: u32, - pub data: epoll_data_t, -} -#[test] -fn bindgen_test_layout_epoll_event() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(epoll_event)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(epoll_event)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).events) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(epoll_event), - "::", - stringify!(events) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).data) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(epoll_event), - "::", - stringify!(data) - ) - ); -} -impl Default for epoll_event { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} -pub type rlim_t = ::core::ffi::c_ulonglong; -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct rlimit { - pub rlim_cur: rlim_t, - pub rlim_max: rlim_t, -} -#[test] -fn bindgen_test_layout_rlimit() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(rlimit)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(rlimit)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).rlim_cur) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(rlimit), - "::", - stringify!(rlim_cur) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).rlim_max) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(rlimit), - "::", - stringify!(rlim_max) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct stat { - pub st_dev: dev_t, - pub st_ino: ino_t, - pub st_mode: mode_t, - pub st_nlink: nlink_t, - pub st_uid: uid_t, - pub st_gid: gid_t, - pub st_rdev: dev_t, - pub st_size: off_t, - pub st_blksize: blksize_t, - pub st_blocks: blkcnt_t, - pub st_atime: timespec, - pub st_mtime: timespec, - pub st_ctime: timespec, -} -#[test] -fn bindgen_test_layout_stat() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(stat)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(stat)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_atime) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_atime) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_mtime) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_mtime) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_ctime) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(stat), - "::", - stringify!(st_ctime) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default, Copy, Clone)] -pub struct kstat { - pub st_dev: dev_t, - pub st_ino: ino_t, - pub st_mode: mode_t, - pub st_nlink: nlink_t, - pub st_uid: uid_t, - pub st_gid: gid_t, - pub st_rdev: dev_t, - pub __pad: ::core::ffi::c_ulong, - pub st_size: off_t, - pub st_blksize: blksize_t, - pub __pad2: ::core::ffi::c_int, - pub st_blocks: blkcnt_t, - pub st_atime_sec: ::core::ffi::c_long, - pub st_atime_nsec: ::core::ffi::c_long, - pub st_mtime_sec: ::core::ffi::c_long, - pub st_mtime_nsec: ::core::ffi::c_long, - pub st_ctime_sec: ::core::ffi::c_long, - pub st_ctime_nsec: ::core::ffi::c_long, - pub __unused: [::core::ffi::c_uint; 2usize], -} -#[test] -fn bindgen_test_layout_kstat() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 136usize, - concat!("Size of: ", stringify!(kstat)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(kstat)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_dev) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_dev) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_ino) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_ino) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_mode) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_mode) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_nlink) as usize - ptr as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_nlink) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_uid) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_uid) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_gid) as usize - ptr as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_gid) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_rdev) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_rdev) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__pad) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(__pad) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_size) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_size) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_blksize) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_blksize) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(__pad2) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_blocks) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_blocks) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_atime_sec) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_atime_sec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_atime_nsec) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_atime_nsec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_mtime_sec) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_mtime_sec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_mtime_nsec) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_mtime_nsec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_ctime_sec) as usize - ptr as usize }, - 112usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_ctime_sec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).st_ctime_nsec) as usize - ptr as usize }, - 120usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(st_ctime_nsec) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).__unused) as usize - ptr as usize }, - 128usize, - concat!( - "Offset of field: ", - stringify!(kstat), - "::", - stringify!(__unused) - ) - ); -} -#[repr(C)] -#[derive(Debug, Default)] -pub struct sysinfo { - pub uptime: ::core::ffi::c_long, - pub loads: [::core::ffi::c_ulong; 3usize], - pub totalram: ::core::ffi::c_ulong, - pub freeram: ::core::ffi::c_ulong, - pub sharedram: ::core::ffi::c_ulong, - pub bufferram: ::core::ffi::c_ulong, - pub totalswap: ::core::ffi::c_ulong, - pub freeswap: ::core::ffi::c_ulong, - pub procs: ::core::ffi::c_ushort, - pub pad: ::core::ffi::c_ushort, - pub totalhigh: ::core::ffi::c_ulong, - pub freehigh: ::core::ffi::c_ulong, - pub mem_unit: ::core::ffi::c_uint, - pub _f: __IncompleteArrayField<::core::ffi::c_char>, -} -#[test] -fn bindgen_test_layout_sysinfo() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 112usize, - concat!("Size of: ", stringify!(sysinfo)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(sysinfo)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).uptime) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(uptime) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).loads) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(loads) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).totalram) as usize - ptr as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(totalram) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).freeram) as usize - ptr as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(freeram) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).sharedram) as usize - ptr as usize }, - 48usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(sharedram) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).bufferram) as usize - ptr as usize }, - 56usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(bufferram) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).totalswap) as usize - ptr as usize }, - 64usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(totalswap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).freeswap) as usize - ptr as usize }, - 72usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(freeswap) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).procs) as usize - ptr as usize }, - 80usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(procs) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, - 82usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(pad) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).totalhigh) as usize - ptr as usize }, - 88usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(totalhigh) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).freehigh) as usize - ptr as usize }, - 96usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(freehigh) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).mem_unit) as usize - ptr as usize }, - 104usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(mem_unit) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr)._f) as usize - ptr as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(sysinfo), - "::", - stringify!(_f) - ) - ); -} -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct iovec { - pub iov_base: *mut ::core::ffi::c_void, - pub iov_len: size_t, -} -#[test] -fn bindgen_test_layout_iovec() { - const UNINIT: ::core::mem::MaybeUninit = ::core::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::core::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(iovec)) - ); - assert_eq!( - ::core::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(iovec)) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).iov_base) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_base) - ) - ); - assert_eq!( - unsafe { ::core::ptr::addr_of!((*ptr).iov_len) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(iovec), - "::", - stringify!(iov_len) - ) - ); -} -impl Default for iovec { - fn default() -> Self { - let mut s = ::core::mem::MaybeUninit::::uninit(); - unsafe { - ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1); - s.assume_init() - } - } -} diff --git a/apps/c/nginx/README.md b/apps/c/nginx/README.md index 09a46f6de..cd532236b 100644 --- a/apps/c/nginx/README.md +++ b/apps/c/nginx/README.md @@ -1,166 +1,49 @@ -# 运行方法 +# How to run nginx on ruxos -## 运行命令 +## commands -### 下载网页 +### download web page + +You should make sure there is a html folder in apps/c/nginx which contains the web page of nginx server. + +If you not use your own web page , you can run commands below: ```shell -//首先要确保机器中有musl libc,可以运行Ruxos的c程序,具体可以参考Ruxos的README中运行c程序的部分 git clone https://github.com/syswonder/syswonder-web.git mkdir -p apps/c/nginx/html cp -r syswonder-web/docs/* apps/c/nginx/html rm -f -r syswonder-web ``` -当运行完成时,访问本机ip的5555端口即可看到结果 +### run nginx -### 运行 +The commands below is to run nginx with different features. These examples run in aarch64 with musl, if you want to run in x86_64, just replace `ARCH=aarch64` with `ARCH=x86_64`, and if you do not want to run with musl , just delete `MUSL=y`. -使用v9p以及musl运行: +use v9p and musl in aarch64: ```shell make A=apps/c/nginx/ LOG=info NET=y BLK=y V9P=y V9P_PATH=apps/c/nginx/html/ ARCH=aarch64 SMP=4 ARGS="./nginx_app" MUSL=y run ``` -使用v9p,不使用musl而使用axlibc运行: - -```shell -make A=apps/c/nginx/ LOG=info NET=y BLK=y V9P=y V9P_PATH=apps/c/nginx/html/ ARCH=aarch64 SMP=4 ARGS="./nginx_app" run -``` - -不使用v9p,使用musl运行: +not use v9p,but use musl in aarch64: ```shell make A=apps/c/nginx/ LOG=info NET=y BLK=y ARCH=aarch64 SMP=4 ARGS="./nginx_app" MUSL=y run ``` -v9p以及musl都不使用,使用axlibc运行: - -```shell -make A=apps/c/nginx/ LOG=info NET=y BLK=y ARCH=aarch64 SMP=4 ARGS="./nginx_app" run -``` - -注意,如果再次运行时有所改动(比如修改了nginx源码或者将libc从musl变为axlibc)需要进行一次clean +If you change running option or source code , remember to clean the compile files and before running. ```shell make clean_c A=apps/c/nginx ``` -# 运行方法的解释 +# nginx conf -## 运行要求: - -机器上需要有以下文件 - -`/nginx/logs/error.log` +You can change next files to change nginx conf: `/nginx/conf/nginx.conf` `/nginx/conf/mime.types` -其中,error.log是日志文件(但是实际上没有用到),nginx.conf是nginx配置文件,告诉nginx如何运行以及一些运行的参数。mime.type是类型转化文件,告诉nginx如何看待不同类型的文件。 - -在apps/c/nginx文件中,可以运行create_nginx_img,创建含有上述文件的磁盘 - -## nginx.conf - -需要着重设置的是nginx.conf,目前运行的syswonder-web,其具体内容如下: - -```nginx -#user nobody; -worker_processes 1; -daemon off; -master_process off; - -#error_log logs/error.log; -#error_log logs/error.log notice; -error_log logs/error.log debug; - -#pid logs/nginx.pid; - - -events { - worker_connections 32; -} - - -http { - include mime.types; - default_type application/octet-stream; - - #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - # '$status $body_bytes_sent "$http_referer" ' - # '"$http_user_agent" "$http_x_forwarded_for"'; - - #access_log logs/access.log main; - - #sendfile on; - #tcp_nopush on; - - #keepalive_timeout 0; - keepalive_timeout 65; - - #gzip on; - - server { - listen 5555; - server_name localhost; - - #charset koi8-r; - - #access_log logs/host.access.log main; - - index index.html; - - root /v9fs; - - location / { - try_files $uri $uri/ /404.html; - } - - error_page 404 /404.html; - location = /404.html { - root /v9fs; - } - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /v9fs; - } - - } - -} -``` - -上面的设置会在本机的5555端口建立一个服务器,向请求者发送Index.heml文件 - -其中需要注意的点是:1.ruxos是单进程系统,无法分出第二个进程,需要使用`daemon off;`设置将守护进程关闭。2.server的文件在机器的/v9fs/下,这是由`root /v9fs;`这一项设置的,可以根据需求设置其他的路径。3. `try_files $uri $uri/ /404.html;`的意思是尝试请求的uri是否存在,不存在的话返回404页面。 - -如果想要使用nginx的其他用法,需要对应修改nginx.conf文件,具体语法可以查阅官方文档。但是目前还没有尝试过除了http服务器之外的用法。 - -## 网页文件: - -需要确保nginx.conf中设置的网页文件的位置正确,比如在上面的conf中,需要保证文件/v9fs/index.html存在才能访问到主页。其余的文件只需要按照index.html的内容在本文件夹下放到应有的位置。 - -运行前可以将网页复制到apps/c/nginx/html/文件夹下,并将主目录下的disk.img删除,这样程序在运行时会自动新建一个磁盘并将html文件夹下的文件复制到磁盘中 - -## 运行命令: - -```shell -make A=apps/c/nginx/ LOG=info NET=y BLK=y V9P=y V9P_PATH=/home/oslab/Desktop/Ruxos/apps/c/nginx/html/ ARCH=aarch64 SMP=4 ARGS="./nginx_app" MUSL=y run -``` - -需要注意的是,nginx.conf中对外的端口是系统的端口,不是qemu以及宿主机的端口,需要对qemu以及宿主机进行相应的设置,使得对应的端口(上面的例子是5555端口)暴露在外面,才能被访问。 - -## 运行结果: - -通过机器的ip地址访问5555端口可以得到syswonder网页 - -![res](res.png) - -## app源码 +After change you should copy them to disk.img (you can run `apps/c/nginx/create_nginx_img.sh` to do that) -目前是使用nginx-1.24.0修改后的源码,修改的内容在apps/c/nginx/nginx.patch中 \ No newline at end of file diff --git a/apps/c/nginx/axbuild.mk b/apps/c/nginx/axbuild.mk index 41866af78..d52d70d1a 100755 --- a/apps/c/nginx/axbuild.mk +++ b/apps/c/nginx/axbuild.mk @@ -12,9 +12,6 @@ nginx-build-args := \ CFLAGS="$(CFLAGS)" \ USE_JEMALLOC=no \ -j -$(info lhw debug CC $(CC) CFLAGS $(CFLAGS) ) -$(info lhw debug LD $(LD) LDFLAGS $(LDFLAGS) ) -$(info lhw debug copy obj: $(OBJCOPY), $(OUT_ELF)) ifneq ($(V),) nginx-build-args += V=$(V) @@ -38,8 +35,6 @@ $(nginx-src): @echo "Download nginx source code" wget https://nginx.org/download/nginx-$(nginx-version).tar.gz -P $(APP) tar -zxvf $(APP)/nginx-$(nginx-version).tar.gz -C $(APP) && rm -f $(APP)/nginx-$(nginx-version).tar.gz - cd $(nginx-src) && git init && git add . -# patch -p1 -N -d $(nginx-objdir) --no-backup-if-mismatch -r - < $(APP)/nginx.patch $(APP)/$(nginx-objs): build_nginx diff --git a/apps/c/nginx/nginx.patch b/apps/c/nginx/nginx.patch deleted file mode 100644 index 5325681b1..000000000 --- a/apps/c/nginx/nginx.patch +++ /dev/null @@ -1,2260 +0,0 @@ -diff --git a/Makefile b/Makefile -new file mode 100755 -index 0000000..43c40a2 ---- /dev/null -+++ b/Makefile -@@ -0,0 +1,32 @@ -+ -+default: build -+ -+all_clean: -+ find . -type f \( -name "*.o" -o -name "*.elf" -o -name "*.bin" \) -exec rm -f {} + -+ -+clean: -+ rm -f objs/nginx_app.o && find . -type f \( -name "*.bin" -o -name "*.elf" \) -exec rm -f {} + -+ -+.PHONY: default clean -+ -+$(info $(MAKE) -f objs/Makefile) -+ -+build: -+ $(MAKE) -f objs/Makefile -+ -+install: -+ $(MAKE) -f objs/Makefile install -+ -+modules: -+ $(MAKE) -f objs/Makefile modules -+ -+upgrade: -+ /nginx/sbin/nginx -t -+ -+ kill -USR2 `cat /nginx/logs/nginx.pid` -+ sleep 1 -+ test -f /nginx/logs/nginx.pid.oldbin -+ -+ kill -QUIT `cat /nginx/logs/nginx.pid.oldbin` -+ -+.PHONY: build install modules upgrade -diff --git a/objs/Makefile b/objs/Makefile -new file mode 100755 -index 0000000..a4dae89 ---- /dev/null -+++ b/objs/Makefile -@@ -0,0 +1,1276 @@ -+ -+CC = aarch64-linux-musl-gcc -+#CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -g -+ifeq ($(MUSL), y) -+ CFLAGS = -DAX_CONFIG_SMP -DAX_CONFIG_ALLOC -DAX_CONFIG_FP_SIMD -DAX_CONFIG_MULTITASK -DAX_CONFIG_FS -DAX_CONFIG_NET -DAX_CONFIG_PIPE -DAX_CONFIG_EPOLL -DAX_CONFIG_POLL -DAX_CONFIG_FD -DAX_LOG_INFO -DAX_CONFIG_SELECT -nostdinc -fno-builtin -ffreestanding -Wall -I../../../../ulib/axmusl/musl-1.2.3/include -O3 -Wno-format -+else -+ CFLAGS = -DAX_CONFIG_SMP -DAX_CONFIG_ALLOC -DAX_CONFIG_FP_SIMD -DAX_CONFIG_MULTITASK -DAX_CONFIG_FS -DAX_CONFIG_NET -DAX_CONFIG_PIPE -DAX_CONFIG_EPOLL -DAX_CONFIG_POLL -DAX_CONFIG_FD -DAX_LOG_INFO -DAX_CONFIG_SELECT -nostdinc -fno-builtin -ffreestanding -Wall -I../../../../ulib/axlibc/include -O3 -Wno-format -+endif -+#CFLAGS = -DAX_CONFIG_SMP -DAX_CONFIG_ALLOC -DAX_CONFIG_FP_SIMD -DAX_CONFIG_MULTITASK -DAX_CONFIG_FS -DAX_CONFIG_NET -DAX_CONFIG_PIPE -DAX_CONFIG_EPOLL -DAX_CONFIG_POLL -DAX_CONFIG_FD -DAX_LOG_INFO -DAX_CONFIG_SELECT -nostdinc -fno-builtin -ffreestanding -Wall -O3 -Wno-format -+CPP = cc -E -+PLATFORM_NAME ?= aarch64-qemu-virt -+LD_SCRIPT := ../../../../modules/axhal/linker_$(PLATFORM_NAME).lds -+LINK = rust-lld -flavor gnu -nostdlib -static -no-pie --gc-sections -T$(LD_SCRIPT) --error-limit=0 -+ -+ifeq ($(MUSL), y) -+ LIBC = ../../../../ulib/axmusl/install/lib/libc.a -+else -+ LIBC = \ -+ ../../../../ulib/axlibc/build_aarch64/libc.a \ -+ ../../../../target/aarch64-unknown-none-softfloat/release/libaxlibc.a -+endif -+ -+OBJCOPY ?= rust-objcopy --binary-architecture=aarch64 -+FEAT = axfeat/log-level-info axfeat/paging axfeat/irq axlibc/smp axlibc/alloc axlibc/fp_simd axlibc/multitask axlibc/fs axlibc/net axlibc/pipe axlibc/epoll axlibc/poll axlibc/select axlibc/fd -+ -+define run_cmd -+ @printf '$(WHITE_C)$(1)$(END_C) $(GRAY_C)$(2)$(END_C)\n' -+ @$(1) $(2) -+endef -+ -+OBJ_DIRS = objs/src/core objs/src/http objs/src/event objs/src/os/unix objs/src/event/modules objs/src/http/modules -+ -+ALL_INCS = -I src/core \ -+ -I src/event \ -+ -I src/event/modules \ -+ -I src/os/unix \ -+ -I objs \ -+ -I src/http \ -+ -I src/http/modules -+ -+ -+CORE_DEPS = src/core/nginx.h \ -+ src/core/ngx_config.h \ -+ src/core/ngx_core.h \ -+ src/core/ngx_log.h \ -+ src/core/ngx_palloc.h \ -+ src/core/ngx_array.h \ -+ src/core/ngx_list.h \ -+ src/core/ngx_hash.h \ -+ src/core/ngx_buf.h \ -+ src/core/ngx_queue.h \ -+ src/core/ngx_string.h \ -+ src/core/ngx_parse.h \ -+ src/core/ngx_parse_time.h \ -+ src/core/ngx_inet.h \ -+ src/core/ngx_file.h \ -+ src/core/ngx_crc.h \ -+ src/core/ngx_crc32.h \ -+ src/core/ngx_murmurhash.h \ -+ src/core/ngx_md5.h \ -+ src/core/ngx_sha1.h \ -+ src/core/ngx_rbtree.h \ -+ src/core/ngx_radix_tree.h \ -+ src/core/ngx_rwlock.h \ -+ src/core/ngx_slab.h \ -+ src/core/ngx_times.h \ -+ src/core/ngx_shmtx.h \ -+ src/core/ngx_connection.h \ -+ src/core/ngx_cycle.h \ -+ src/core/ngx_conf_file.h \ -+ src/core/ngx_module.h \ -+ src/core/ngx_resolver.h \ -+ src/core/ngx_open_file_cache.h \ -+ src/core/ngx_crypt.h \ -+ src/core/ngx_proxy_protocol.h \ -+ src/core/ngx_syslog.h \ -+ src/event/ngx_event.h \ -+ src/event/ngx_event_timer.h \ -+ src/event/ngx_event_posted.h \ -+ src/event/ngx_event_connect.h \ -+ src/event/ngx_event_pipe.h \ -+ src/event/ngx_event_udp.h \ -+ src/os/unix/ngx_time.h \ -+ src/os/unix/ngx_errno.h \ -+ src/os/unix/ngx_alloc.h \ -+ src/os/unix/ngx_files.h \ -+ src/os/unix/ngx_channel.h \ -+ src/os/unix/ngx_shmem.h \ -+ src/os/unix/ngx_process.h \ -+ src/os/unix/ngx_setaffinity.h \ -+ src/os/unix/ngx_setproctitle.h \ -+ src/os/unix/ngx_atomic.h \ -+ src/os/unix/ngx_gcc_atomic_x86.h \ -+ src/os/unix/ngx_thread.h \ -+ src/os/unix/ngx_socket.h \ -+ src/os/unix/ngx_os.h \ -+ src/os/unix/ngx_user.h \ -+ src/os/unix/ngx_dlopen.h \ -+ src/os/unix/ngx_process_cycle.h \ -+ src/os/unix/ngx_linux_config.h \ -+ src/os/unix/ngx_linux.h \ -+ objs/ngx_auto_config.h -+ -+ -+CORE_INCS = -I src/core \ -+ -I src/event \ -+ -I src/event/modules \ -+ -I src/os/unix \ -+ -I objs -+ -+ -+HTTP_DEPS = src/http/ngx_http.h \ -+ src/http/ngx_http_request.h \ -+ src/http/ngx_http_config.h \ -+ src/http/ngx_http_core_module.h \ -+ src/http/ngx_http_cache.h \ -+ src/http/ngx_http_variables.h \ -+ src/http/ngx_http_script.h \ -+ src/http/ngx_http_upstream.h \ -+ src/http/ngx_http_upstream_round_robin.h \ -+ src/http/modules/ngx_http_ssi_filter_module.h -+ -+ -+HTTP_INCS = -I src/http \ -+ -I src/http/modules -+ -+OUT_BIN = objs/nginx_aarch64-qemu-q35.bin -+OUT_ELF = objs/nginx_aarch64-qemu-q35.elf -+ -+build: binary modules -+ -+binary: $(OUT_BIN) -+ -+_cargo_build: -+ $(call cargo_build,-p axlibc,$(FEAT)) -+ -+$(OUT_BIN): $(OUT_ELF) -+ @echo "use clib:" -+ @echo "($LIBC)" -+ $(call run_cmd,$(OBJCOPY),$(OUT_ELF) --strip-all -O binary $@) -+ -+ -+objs/nginx_aarch64-qemu-q35.elf: objs/nginx_app.o -+ -+ $(LINK) -o objs/nginx_aarch64-qemu-q35.elf \ -+ $(LIBC) \ -+ objs/nginx_app.o -+ -+objs/nginx_app.o: objs/src/core/nginx.o \ -+ objs/src/core/ngx_log.o \ -+ objs/src/core/ngx_palloc.o \ -+ objs/src/core/ngx_array.o \ -+ objs/src/core/ngx_list.o \ -+ objs/src/core/ngx_hash.o \ -+ objs/src/core/ngx_buf.o \ -+ objs/src/core/ngx_queue.o \ -+ objs/src/core/ngx_output_chain.o \ -+ objs/src/core/ngx_string.o \ -+ objs/src/core/ngx_parse.o \ -+ objs/src/core/ngx_parse_time.o \ -+ objs/src/core/ngx_inet.o \ -+ objs/src/core/ngx_file.o \ -+ objs/src/core/ngx_crc32.o \ -+ objs/src/core/ngx_murmurhash.o \ -+ objs/src/core/ngx_md5.o \ -+ objs/src/core/ngx_sha1.o \ -+ objs/src/core/ngx_rbtree.o \ -+ objs/src/core/ngx_radix_tree.o \ -+ objs/src/core/ngx_slab.o \ -+ objs/src/core/ngx_times.o \ -+ objs/src/core/ngx_shmtx.o \ -+ objs/src/core/ngx_connection.o \ -+ objs/src/core/ngx_cycle.o \ -+ objs/src/core/ngx_spinlock.o \ -+ objs/src/core/ngx_rwlock.o \ -+ objs/src/core/ngx_cpuinfo.o \ -+ objs/src/core/ngx_conf_file.o \ -+ objs/src/core/ngx_module.o \ -+ objs/src/core/ngx_resolver.o \ -+ objs/src/core/ngx_open_file_cache.o \ -+ objs/src/core/ngx_crypt.o \ -+ objs/src/core/ngx_proxy_protocol.o \ -+ objs/src/core/ngx_syslog.o \ -+ objs/src/event/ngx_event.o \ -+ objs/src/event/ngx_event_timer.o \ -+ objs/src/event/ngx_event_posted.o \ -+ objs/src/event/ngx_event_accept.o \ -+ objs/src/event/ngx_event_udp.o \ -+ objs/src/event/ngx_event_connect.o \ -+ objs/src/event/ngx_event_pipe.o \ -+ objs/src/os/unix/ngx_time.o \ -+ objs/src/os/unix/ngx_errno.o \ -+ objs/src/os/unix/ngx_alloc.o \ -+ objs/src/os/unix/ngx_files.o \ -+ objs/src/os/unix/ngx_socket.o \ -+ objs/src/os/unix/ngx_recv.o \ -+ objs/src/os/unix/ngx_readv_chain.o \ -+ objs/src/os/unix/ngx_udp_recv.o \ -+ objs/src/os/unix/ngx_send.o \ -+ objs/src/os/unix/ngx_writev_chain.o \ -+ objs/src/os/unix/ngx_udp_send.o \ -+ objs/src/os/unix/ngx_udp_sendmsg_chain.o \ -+ objs/src/os/unix/ngx_channel.o \ -+ objs/src/os/unix/ngx_shmem.o \ -+ objs/src/os/unix/ngx_process.o \ -+ objs/src/os/unix/ngx_daemon.o \ -+ objs/src/os/unix/ngx_setaffinity.o \ -+ objs/src/os/unix/ngx_setproctitle.o \ -+ objs/src/os/unix/ngx_posix_init.o \ -+ objs/src/os/unix/ngx_user.o \ -+ objs/src/os/unix/ngx_dlopen.o \ -+ objs/src/os/unix/ngx_process_cycle.o \ -+ objs/src/os/unix/ngx_linux_init.o \ -+ objs/src/event/modules/ngx_epoll_module.o \ -+ objs/src/os/unix/ngx_linux_sendfile_chain.o \ -+ objs/src/event/modules/ngx_select_module.o \ -+ objs/src/http/ngx_http.o \ -+ objs/src/http/ngx_http_core_module.o \ -+ objs/src/http/ngx_http_special_response.o \ -+ objs/src/http/ngx_http_request.o \ -+ objs/src/http/ngx_http_parse.o \ -+ objs/src/http/modules/ngx_http_log_module.o \ -+ objs/src/http/ngx_http_request_body.o \ -+ objs/src/http/ngx_http_variables.o \ -+ objs/src/http/ngx_http_script.o \ -+ objs/src/http/ngx_http_upstream.o \ -+ objs/src/http/ngx_http_upstream_round_robin.o \ -+ objs/src/http/ngx_http_write_filter_module.o \ -+ objs/src/http/ngx_http_header_filter_module.o \ -+ objs/src/http/modules/ngx_http_chunked_filter_module.o \ -+ objs/src/http/modules/ngx_http_range_filter_module.o \ -+ objs/src/http/ngx_http_postpone_filter_module.o \ -+ objs/src/http/modules/ngx_http_ssi_filter_module.o \ -+ objs/src/http/modules/ngx_http_charset_filter_module.o \ -+ objs/src/http/modules/ngx_http_sub_filter_module.o \ -+ objs/src/http/modules/ngx_http_userid_filter_module.o \ -+ objs/src/http/modules/ngx_http_headers_filter_module.o \ -+ objs/src/http/ngx_http_copy_filter_module.o \ -+ objs/src/http/modules/ngx_http_not_modified_filter_module.o \ -+ objs/src/http/modules/ngx_http_static_module.o \ -+ objs/src/http/modules/ngx_http_autoindex_module.o \ -+ objs/src/http/modules/ngx_http_index_module.o \ -+ objs/src/http/modules/ngx_http_mirror_module.o \ -+ objs/src/http/modules/ngx_http_try_files_module.o \ -+ objs/src/http/modules/ngx_http_access_module.o \ -+ objs/src/http/modules/ngx_http_limit_conn_module.o \ -+ objs/src/http/modules/ngx_http_limit_req_module.o \ -+ objs/src/http/modules/ngx_http_geo_module.o \ -+ objs/src/http/modules/ngx_http_map_module.o \ -+ objs/src/http/modules/ngx_http_split_clients_module.o \ -+ objs/src/http/modules/ngx_http_referer_module.o \ -+ objs/src/http/modules/ngx_http_proxy_module.o \ -+ objs/src/http/modules/ngx_http_fastcgi_module.o \ -+ objs/src/http/modules/ngx_http_uwsgi_module.o \ -+ objs/src/http/modules/ngx_http_scgi_module.o \ -+ objs/src/http/modules/ngx_http_memcached_module.o \ -+ objs/src/http/modules/ngx_http_empty_gif_module.o \ -+ objs/src/http/modules/ngx_http_browser_module.o \ -+ objs/src/http/modules/ngx_http_upstream_hash_module.o \ -+ objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \ -+ objs/src/http/modules/ngx_http_upstream_least_conn_module.o \ -+ objs/src/http/modules/ngx_http_upstream_random_module.o \ -+ objs/src/http/modules/ngx_http_upstream_keepalive_module.o \ -+ objs/src/http/modules/ngx_http_upstream_zone_module.o \ -+ objs/ngx_modules.o -+ -+ $(CC) -r -o objs/nginx_app.o \ -+ objs/src/core/nginx.o \ -+ objs/src/core/ngx_log.o \ -+ objs/src/core/ngx_palloc.o \ -+ objs/src/core/ngx_array.o \ -+ objs/src/core/ngx_list.o \ -+ objs/src/core/ngx_hash.o \ -+ objs/src/core/ngx_buf.o \ -+ objs/src/core/ngx_queue.o \ -+ objs/src/core/ngx_output_chain.o \ -+ objs/src/core/ngx_string.o \ -+ objs/src/core/ngx_parse.o \ -+ objs/src/core/ngx_parse_time.o \ -+ objs/src/core/ngx_inet.o \ -+ objs/src/core/ngx_file.o \ -+ objs/src/core/ngx_crc32.o \ -+ objs/src/core/ngx_murmurhash.o \ -+ objs/src/core/ngx_md5.o \ -+ objs/src/core/ngx_sha1.o \ -+ objs/src/core/ngx_rbtree.o \ -+ objs/src/core/ngx_radix_tree.o \ -+ objs/src/core/ngx_slab.o \ -+ objs/src/core/ngx_times.o \ -+ objs/src/core/ngx_shmtx.o \ -+ objs/src/core/ngx_connection.o \ -+ objs/src/core/ngx_cycle.o \ -+ objs/src/core/ngx_spinlock.o \ -+ objs/src/core/ngx_rwlock.o \ -+ objs/src/core/ngx_cpuinfo.o \ -+ objs/src/core/ngx_conf_file.o \ -+ objs/src/core/ngx_module.o \ -+ objs/src/core/ngx_resolver.o \ -+ objs/src/core/ngx_open_file_cache.o \ -+ objs/src/core/ngx_crypt.o \ -+ objs/src/core/ngx_proxy_protocol.o \ -+ objs/src/core/ngx_syslog.o \ -+ objs/src/event/ngx_event.o \ -+ objs/src/event/ngx_event_timer.o \ -+ objs/src/event/ngx_event_posted.o \ -+ objs/src/event/ngx_event_accept.o \ -+ objs/src/event/ngx_event_udp.o \ -+ objs/src/event/ngx_event_connect.o \ -+ objs/src/event/ngx_event_pipe.o \ -+ objs/src/os/unix/ngx_time.o \ -+ objs/src/os/unix/ngx_errno.o \ -+ objs/src/os/unix/ngx_alloc.o \ -+ objs/src/os/unix/ngx_files.o \ -+ objs/src/os/unix/ngx_socket.o \ -+ objs/src/os/unix/ngx_recv.o \ -+ objs/src/os/unix/ngx_readv_chain.o \ -+ objs/src/os/unix/ngx_udp_recv.o \ -+ objs/src/os/unix/ngx_send.o \ -+ objs/src/os/unix/ngx_writev_chain.o \ -+ objs/src/os/unix/ngx_udp_send.o \ -+ objs/src/os/unix/ngx_udp_sendmsg_chain.o \ -+ objs/src/os/unix/ngx_channel.o \ -+ objs/src/os/unix/ngx_shmem.o \ -+ objs/src/os/unix/ngx_process.o \ -+ objs/src/os/unix/ngx_daemon.o \ -+ objs/src/os/unix/ngx_setaffinity.o \ -+ objs/src/os/unix/ngx_setproctitle.o \ -+ objs/src/os/unix/ngx_posix_init.o \ -+ objs/src/os/unix/ngx_user.o \ -+ objs/src/os/unix/ngx_dlopen.o \ -+ objs/src/os/unix/ngx_process_cycle.o \ -+ objs/src/os/unix/ngx_linux_init.o \ -+ objs/src/event/modules/ngx_epoll_module.o \ -+ objs/src/os/unix/ngx_linux_sendfile_chain.o \ -+ objs/src/event/modules/ngx_select_module.o \ -+ objs/src/http/ngx_http.o \ -+ objs/src/http/ngx_http_core_module.o \ -+ objs/src/http/ngx_http_special_response.o \ -+ objs/src/http/ngx_http_request.o \ -+ objs/src/http/ngx_http_parse.o \ -+ objs/src/http/modules/ngx_http_log_module.o \ -+ objs/src/http/ngx_http_request_body.o \ -+ objs/src/http/ngx_http_variables.o \ -+ objs/src/http/ngx_http_script.o \ -+ objs/src/http/ngx_http_upstream.o \ -+ objs/src/http/ngx_http_upstream_round_robin.o \ -+ objs/src/http/ngx_http_write_filter_module.o \ -+ objs/src/http/ngx_http_header_filter_module.o \ -+ objs/src/http/modules/ngx_http_chunked_filter_module.o \ -+ objs/src/http/modules/ngx_http_range_filter_module.o \ -+ objs/src/http/ngx_http_postpone_filter_module.o \ -+ objs/src/http/modules/ngx_http_ssi_filter_module.o \ -+ objs/src/http/modules/ngx_http_charset_filter_module.o \ -+ objs/src/http/modules/ngx_http_sub_filter_module.o \ -+ objs/src/http/modules/ngx_http_userid_filter_module.o \ -+ objs/src/http/modules/ngx_http_headers_filter_module.o \ -+ objs/src/http/ngx_http_copy_filter_module.o \ -+ objs/src/http/modules/ngx_http_not_modified_filter_module.o \ -+ objs/src/http/modules/ngx_http_static_module.o \ -+ objs/src/http/modules/ngx_http_autoindex_module.o \ -+ objs/src/http/modules/ngx_http_index_module.o \ -+ objs/src/http/modules/ngx_http_mirror_module.o \ -+ objs/src/http/modules/ngx_http_try_files_module.o \ -+ objs/src/http/modules/ngx_http_access_module.o \ -+ objs/src/http/modules/ngx_http_limit_conn_module.o \ -+ objs/src/http/modules/ngx_http_limit_req_module.o \ -+ objs/src/http/modules/ngx_http_geo_module.o \ -+ objs/src/http/modules/ngx_http_map_module.o \ -+ objs/src/http/modules/ngx_http_split_clients_module.o \ -+ objs/src/http/modules/ngx_http_referer_module.o \ -+ objs/src/http/modules/ngx_http_proxy_module.o \ -+ objs/src/http/modules/ngx_http_fastcgi_module.o \ -+ objs/src/http/modules/ngx_http_uwsgi_module.o \ -+ objs/src/http/modules/ngx_http_scgi_module.o \ -+ objs/src/http/modules/ngx_http_memcached_module.o \ -+ objs/src/http/modules/ngx_http_empty_gif_module.o \ -+ objs/src/http/modules/ngx_http_browser_module.o \ -+ objs/src/http/modules/ngx_http_upstream_hash_module.o \ -+ objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \ -+ objs/src/http/modules/ngx_http_upstream_least_conn_module.o \ -+ objs/src/http/modules/ngx_http_upstream_random_module.o \ -+ objs/src/http/modules/ngx_http_upstream_keepalive_module.o \ -+ objs/src/http/modules/ngx_http_upstream_zone_module.o \ -+ objs/ngx_modules.o -+ -+modules: -+ -+objs/ngx_modules.o: $(CORE_DEPS) \ -+ objs/ngx_modules.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/ngx_modules.o \ -+ objs/ngx_modules.c -+ -+ -+objs/src/core/nginx.o: $(CORE_DEPS) \ -+ src/core/nginx.c -+ @mkdir -p $(dir $@) -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/nginx.o \ -+ src/core/nginx.c -+ -+ -+objs/src/core/ngx_log.o: $(CORE_DEPS) \ -+ src/core/ngx_log.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_log.o \ -+ src/core/ngx_log.c -+ -+ -+objs/src/core/ngx_palloc.o: $(CORE_DEPS) \ -+ src/core/ngx_palloc.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_palloc.o \ -+ src/core/ngx_palloc.c -+ -+ -+objs/src/core/ngx_array.o: $(CORE_DEPS) \ -+ src/core/ngx_array.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_array.o \ -+ src/core/ngx_array.c -+ -+ -+objs/src/core/ngx_list.o: $(CORE_DEPS) \ -+ src/core/ngx_list.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_list.o \ -+ src/core/ngx_list.c -+ -+ -+objs/src/core/ngx_hash.o: $(CORE_DEPS) \ -+ src/core/ngx_hash.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_hash.o \ -+ src/core/ngx_hash.c -+ -+ -+objs/src/core/ngx_buf.o: $(CORE_DEPS) \ -+ src/core/ngx_buf.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_buf.o \ -+ src/core/ngx_buf.c -+ -+ -+objs/src/core/ngx_queue.o: $(CORE_DEPS) \ -+ src/core/ngx_queue.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_queue.o \ -+ src/core/ngx_queue.c -+ -+ -+objs/src/core/ngx_output_chain.o: $(CORE_DEPS) \ -+ src/core/ngx_output_chain.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_output_chain.o \ -+ src/core/ngx_output_chain.c -+ -+ -+objs/src/core/ngx_string.o: $(CORE_DEPS) \ -+ src/core/ngx_string.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_string.o \ -+ src/core/ngx_string.c -+ -+ -+objs/src/core/ngx_parse.o: $(CORE_DEPS) \ -+ src/core/ngx_parse.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_parse.o \ -+ src/core/ngx_parse.c -+ -+ -+objs/src/core/ngx_parse_time.o: $(CORE_DEPS) \ -+ src/core/ngx_parse_time.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_parse_time.o \ -+ src/core/ngx_parse_time.c -+ -+ -+objs/src/core/ngx_inet.o: $(CORE_DEPS) \ -+ src/core/ngx_inet.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_inet.o \ -+ src/core/ngx_inet.c -+ -+ -+objs/src/core/ngx_file.o: $(CORE_DEPS) \ -+ src/core/ngx_file.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_file.o \ -+ src/core/ngx_file.c -+ -+ -+objs/src/core/ngx_crc32.o: $(CORE_DEPS) \ -+ src/core/ngx_crc32.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_crc32.o \ -+ src/core/ngx_crc32.c -+ -+ -+objs/src/core/ngx_murmurhash.o: $(CORE_DEPS) \ -+ src/core/ngx_murmurhash.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_murmurhash.o \ -+ src/core/ngx_murmurhash.c -+ -+ -+objs/src/core/ngx_md5.o: $(CORE_DEPS) \ -+ src/core/ngx_md5.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_md5.o \ -+ src/core/ngx_md5.c -+ -+ -+objs/src/core/ngx_sha1.o: $(CORE_DEPS) \ -+ src/core/ngx_sha1.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_sha1.o \ -+ src/core/ngx_sha1.c -+ -+ -+objs/src/core/ngx_rbtree.o: $(CORE_DEPS) \ -+ src/core/ngx_rbtree.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_rbtree.o \ -+ src/core/ngx_rbtree.c -+ -+ -+objs/src/core/ngx_radix_tree.o: $(CORE_DEPS) \ -+ src/core/ngx_radix_tree.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_radix_tree.o \ -+ src/core/ngx_radix_tree.c -+ -+ -+objs/src/core/ngx_slab.o: $(CORE_DEPS) \ -+ src/core/ngx_slab.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_slab.o \ -+ src/core/ngx_slab.c -+ -+ -+objs/src/core/ngx_times.o: $(CORE_DEPS) \ -+ src/core/ngx_times.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_times.o \ -+ src/core/ngx_times.c -+ -+ -+objs/src/core/ngx_shmtx.o: $(CORE_DEPS) \ -+ src/core/ngx_shmtx.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_shmtx.o \ -+ src/core/ngx_shmtx.c -+ -+ -+objs/src/core/ngx_connection.o: $(CORE_DEPS) \ -+ src/core/ngx_connection.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_connection.o \ -+ src/core/ngx_connection.c -+ -+ -+objs/src/core/ngx_cycle.o: $(CORE_DEPS) \ -+ src/core/ngx_cycle.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_cycle.o \ -+ src/core/ngx_cycle.c -+ -+ -+objs/src/core/ngx_spinlock.o: $(CORE_DEPS) \ -+ src/core/ngx_spinlock.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_spinlock.o \ -+ src/core/ngx_spinlock.c -+ -+ -+objs/src/core/ngx_rwlock.o: $(CORE_DEPS) \ -+ src/core/ngx_rwlock.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_rwlock.o \ -+ src/core/ngx_rwlock.c -+ -+ -+objs/src/core/ngx_cpuinfo.o: $(CORE_DEPS) \ -+ src/core/ngx_cpuinfo.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_cpuinfo.o \ -+ src/core/ngx_cpuinfo.c -+ -+ -+objs/src/core/ngx_conf_file.o: $(CORE_DEPS) \ -+ src/core/ngx_conf_file.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_conf_file.o \ -+ src/core/ngx_conf_file.c -+ -+ -+objs/src/core/ngx_module.o: $(CORE_DEPS) \ -+ src/core/ngx_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_module.o \ -+ src/core/ngx_module.c -+ -+ -+objs/src/core/ngx_resolver.o: $(CORE_DEPS) \ -+ src/core/ngx_resolver.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_resolver.o \ -+ src/core/ngx_resolver.c -+ -+ -+objs/src/core/ngx_open_file_cache.o: $(CORE_DEPS) \ -+ src/core/ngx_open_file_cache.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_open_file_cache.o \ -+ src/core/ngx_open_file_cache.c -+ -+ -+objs/src/core/ngx_crypt.o: $(CORE_DEPS) \ -+ src/core/ngx_crypt.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_crypt.o \ -+ src/core/ngx_crypt.c -+ -+ -+objs/src/core/ngx_proxy_protocol.o: $(CORE_DEPS) \ -+ src/core/ngx_proxy_protocol.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_proxy_protocol.o \ -+ src/core/ngx_proxy_protocol.c -+ -+ -+objs/src/core/ngx_syslog.o: $(CORE_DEPS) \ -+ src/core/ngx_syslog.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/core/ngx_syslog.o \ -+ src/core/ngx_syslog.c -+ -+ -+objs/src/event/ngx_event.o: $(CORE_DEPS) \ -+ src/event/ngx_event.c -+ @mkdir -p $(dir $@) -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/ngx_event.o \ -+ src/event/ngx_event.c -+ -+ -+objs/src/event/ngx_event_timer.o: $(CORE_DEPS) \ -+ src/event/ngx_event_timer.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/ngx_event_timer.o \ -+ src/event/ngx_event_timer.c -+ -+ -+objs/src/event/ngx_event_posted.o: $(CORE_DEPS) \ -+ src/event/ngx_event_posted.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/ngx_event_posted.o \ -+ src/event/ngx_event_posted.c -+ -+ -+objs/src/event/ngx_event_accept.o: $(CORE_DEPS) \ -+ src/event/ngx_event_accept.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/ngx_event_accept.o \ -+ src/event/ngx_event_accept.c -+ -+ -+objs/src/event/ngx_event_udp.o: $(CORE_DEPS) \ -+ src/event/ngx_event_udp.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/ngx_event_udp.o \ -+ src/event/ngx_event_udp.c -+ -+ -+objs/src/event/ngx_event_connect.o: $(CORE_DEPS) \ -+ src/event/ngx_event_connect.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/ngx_event_connect.o \ -+ src/event/ngx_event_connect.c -+ -+ -+objs/src/event/ngx_event_pipe.o: $(CORE_DEPS) \ -+ src/event/ngx_event_pipe.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/ngx_event_pipe.o \ -+ src/event/ngx_event_pipe.c -+ -+ -+objs/src/os/unix/ngx_time.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_time.c -+ @mkdir -p $(dir $@) -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_time.o \ -+ src/os/unix/ngx_time.c -+ -+ -+objs/src/os/unix/ngx_errno.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_errno.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_errno.o \ -+ src/os/unix/ngx_errno.c -+ -+ -+objs/src/os/unix/ngx_alloc.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_alloc.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_alloc.o \ -+ src/os/unix/ngx_alloc.c -+ -+ -+objs/src/os/unix/ngx_files.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_files.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_files.o \ -+ src/os/unix/ngx_files.c -+ -+ -+objs/src/os/unix/ngx_socket.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_socket.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_socket.o \ -+ src/os/unix/ngx_socket.c -+ -+ -+objs/src/os/unix/ngx_recv.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_recv.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_recv.o \ -+ src/os/unix/ngx_recv.c -+ -+ -+objs/src/os/unix/ngx_readv_chain.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_readv_chain.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_readv_chain.o \ -+ src/os/unix/ngx_readv_chain.c -+ -+ -+objs/src/os/unix/ngx_udp_recv.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_udp_recv.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_udp_recv.o \ -+ src/os/unix/ngx_udp_recv.c -+ -+ -+objs/src/os/unix/ngx_send.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_send.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_send.o \ -+ src/os/unix/ngx_send.c -+ -+ -+objs/src/os/unix/ngx_writev_chain.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_writev_chain.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_writev_chain.o \ -+ src/os/unix/ngx_writev_chain.c -+ -+ -+objs/src/os/unix/ngx_udp_send.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_udp_send.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_udp_send.o \ -+ src/os/unix/ngx_udp_send.c -+ -+ -+objs/src/os/unix/ngx_udp_sendmsg_chain.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_udp_sendmsg_chain.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_udp_sendmsg_chain.o \ -+ src/os/unix/ngx_udp_sendmsg_chain.c -+ -+ -+objs/src/os/unix/ngx_channel.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_channel.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_channel.o \ -+ src/os/unix/ngx_channel.c -+ -+ -+objs/src/os/unix/ngx_shmem.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_shmem.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_shmem.o \ -+ src/os/unix/ngx_shmem.c -+ -+ -+objs/src/os/unix/ngx_process.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_process.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_process.o \ -+ src/os/unix/ngx_process.c -+ -+ -+objs/src/os/unix/ngx_daemon.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_daemon.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_daemon.o \ -+ src/os/unix/ngx_daemon.c -+ -+ -+objs/src/os/unix/ngx_setaffinity.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_setaffinity.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_setaffinity.o \ -+ src/os/unix/ngx_setaffinity.c -+ -+ -+objs/src/os/unix/ngx_setproctitle.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_setproctitle.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_setproctitle.o \ -+ src/os/unix/ngx_setproctitle.c -+ -+ -+objs/src/os/unix/ngx_posix_init.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_posix_init.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_posix_init.o \ -+ src/os/unix/ngx_posix_init.c -+ -+ -+objs/src/os/unix/ngx_user.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_user.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_user.o \ -+ src/os/unix/ngx_user.c -+ -+ -+objs/src/os/unix/ngx_dlopen.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_dlopen.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_dlopen.o \ -+ src/os/unix/ngx_dlopen.c -+ -+ -+objs/src/os/unix/ngx_process_cycle.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_process_cycle.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_process_cycle.o \ -+ src/os/unix/ngx_process_cycle.c -+ -+ -+objs/src/os/unix/ngx_linux_init.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_linux_init.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_linux_init.o \ -+ src/os/unix/ngx_linux_init.c -+ -+ -+objs/src/event/modules/ngx_epoll_module.o: $(CORE_DEPS) \ -+ src/event/modules/ngx_epoll_module.c -+ @mkdir -p $(dir $@) -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/modules/ngx_epoll_module.o \ -+ src/event/modules/ngx_epoll_module.c -+ -+ -+objs/src/os/unix/ngx_linux_sendfile_chain.o: $(CORE_DEPS) \ -+ src/os/unix/ngx_linux_sendfile_chain.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/os/unix/ngx_linux_sendfile_chain.o \ -+ src/os/unix/ngx_linux_sendfile_chain.c -+ -+ -+objs/src/event/modules/ngx_select_module.o: $(CORE_DEPS) \ -+ src/event/modules/ngx_select_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) \ -+ -o objs/src/event/modules/ngx_select_module.o \ -+ src/event/modules/ngx_select_module.c -+ -+ -+objs/src/http/ngx_http.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http.c -+ @mkdir -p $(dir $@) -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http.o \ -+ src/http/ngx_http.c -+ -+ -+objs/src/http/ngx_http_core_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_core_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_core_module.o \ -+ src/http/ngx_http_core_module.c -+ -+ -+objs/src/http/ngx_http_special_response.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_special_response.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_special_response.o \ -+ src/http/ngx_http_special_response.c -+ -+ -+objs/src/http/ngx_http_request.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_request.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_request.o \ -+ src/http/ngx_http_request.c -+ -+ -+objs/src/http/ngx_http_parse.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_parse.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_parse.o \ -+ src/http/ngx_http_parse.c -+ -+ -+objs/src/http/modules/ngx_http_log_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_log_module.c -+ @mkdir -p $(dir $@) -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_log_module.o \ -+ src/http/modules/ngx_http_log_module.c -+ -+ -+objs/src/http/ngx_http_request_body.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_request_body.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_request_body.o \ -+ src/http/ngx_http_request_body.c -+ -+ -+objs/src/http/ngx_http_variables.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_variables.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_variables.o \ -+ src/http/ngx_http_variables.c -+ -+ -+objs/src/http/ngx_http_script.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_script.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_script.o \ -+ src/http/ngx_http_script.c -+ -+ -+objs/src/http/ngx_http_upstream.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_upstream.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_upstream.o \ -+ src/http/ngx_http_upstream.c -+ -+ -+objs/src/http/ngx_http_upstream_round_robin.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_upstream_round_robin.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_upstream_round_robin.o \ -+ src/http/ngx_http_upstream_round_robin.c -+ -+ -+objs/src/http/ngx_http_write_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_write_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_write_filter_module.o \ -+ src/http/ngx_http_write_filter_module.c -+ -+ -+objs/src/http/ngx_http_header_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_header_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_header_filter_module.o \ -+ src/http/ngx_http_header_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_chunked_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_chunked_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_chunked_filter_module.o \ -+ src/http/modules/ngx_http_chunked_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_range_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_range_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_range_filter_module.o \ -+ src/http/modules/ngx_http_range_filter_module.c -+ -+ -+objs/src/http/ngx_http_postpone_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_postpone_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_postpone_filter_module.o \ -+ src/http/ngx_http_postpone_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_ssi_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_ssi_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_ssi_filter_module.o \ -+ src/http/modules/ngx_http_ssi_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_charset_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_charset_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_charset_filter_module.o \ -+ src/http/modules/ngx_http_charset_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_sub_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_sub_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_sub_filter_module.o \ -+ src/http/modules/ngx_http_sub_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_userid_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_userid_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_userid_filter_module.o \ -+ src/http/modules/ngx_http_userid_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_headers_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_headers_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_headers_filter_module.o \ -+ src/http/modules/ngx_http_headers_filter_module.c -+ -+ -+objs/src/http/ngx_http_copy_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/ngx_http_copy_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/ngx_http_copy_filter_module.o \ -+ src/http/ngx_http_copy_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_not_modified_filter_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_not_modified_filter_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_not_modified_filter_module.o \ -+ src/http/modules/ngx_http_not_modified_filter_module.c -+ -+ -+objs/src/http/modules/ngx_http_static_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_static_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_static_module.o \ -+ src/http/modules/ngx_http_static_module.c -+ -+ -+objs/src/http/modules/ngx_http_autoindex_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_autoindex_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_autoindex_module.o \ -+ src/http/modules/ngx_http_autoindex_module.c -+ -+ -+objs/src/http/modules/ngx_http_index_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_index_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_index_module.o \ -+ src/http/modules/ngx_http_index_module.c -+ -+ -+objs/src/http/modules/ngx_http_mirror_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_mirror_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_mirror_module.o \ -+ src/http/modules/ngx_http_mirror_module.c -+ -+ -+objs/src/http/modules/ngx_http_try_files_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_try_files_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_try_files_module.o \ -+ src/http/modules/ngx_http_try_files_module.c -+ -+ -+objs/src/http/modules/ngx_http_access_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_access_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_access_module.o \ -+ src/http/modules/ngx_http_access_module.c -+ -+ -+objs/src/http/modules/ngx_http_limit_conn_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_limit_conn_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_limit_conn_module.o \ -+ src/http/modules/ngx_http_limit_conn_module.c -+ -+ -+objs/src/http/modules/ngx_http_limit_req_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_limit_req_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_limit_req_module.o \ -+ src/http/modules/ngx_http_limit_req_module.c -+ -+ -+objs/src/http/modules/ngx_http_geo_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_geo_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_geo_module.o \ -+ src/http/modules/ngx_http_geo_module.c -+ -+ -+objs/src/http/modules/ngx_http_map_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_map_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_map_module.o \ -+ src/http/modules/ngx_http_map_module.c -+ -+ -+objs/src/http/modules/ngx_http_split_clients_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_split_clients_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_split_clients_module.o \ -+ src/http/modules/ngx_http_split_clients_module.c -+ -+ -+objs/src/http/modules/ngx_http_referer_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_referer_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_referer_module.o \ -+ src/http/modules/ngx_http_referer_module.c -+ -+ -+objs/src/http/modules/ngx_http_proxy_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_proxy_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_proxy_module.o \ -+ src/http/modules/ngx_http_proxy_module.c -+ -+ -+objs/src/http/modules/ngx_http_fastcgi_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_fastcgi_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_fastcgi_module.o \ -+ src/http/modules/ngx_http_fastcgi_module.c -+ -+ -+objs/src/http/modules/ngx_http_uwsgi_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_uwsgi_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_uwsgi_module.o \ -+ src/http/modules/ngx_http_uwsgi_module.c -+ -+ -+objs/src/http/modules/ngx_http_scgi_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_scgi_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_scgi_module.o \ -+ src/http/modules/ngx_http_scgi_module.c -+ -+ -+objs/src/http/modules/ngx_http_memcached_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_memcached_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_memcached_module.o \ -+ src/http/modules/ngx_http_memcached_module.c -+ -+ -+objs/src/http/modules/ngx_http_empty_gif_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_empty_gif_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_empty_gif_module.o \ -+ src/http/modules/ngx_http_empty_gif_module.c -+ -+ -+objs/src/http/modules/ngx_http_browser_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_browser_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_browser_module.o \ -+ src/http/modules/ngx_http_browser_module.c -+ -+ -+objs/src/http/modules/ngx_http_upstream_hash_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_upstream_hash_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_upstream_hash_module.o \ -+ src/http/modules/ngx_http_upstream_hash_module.c -+ -+ -+objs/src/http/modules/ngx_http_upstream_ip_hash_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_upstream_ip_hash_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \ -+ src/http/modules/ngx_http_upstream_ip_hash_module.c -+ -+ -+objs/src/http/modules/ngx_http_upstream_least_conn_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_upstream_least_conn_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_upstream_least_conn_module.o \ -+ src/http/modules/ngx_http_upstream_least_conn_module.c -+ -+ -+objs/src/http/modules/ngx_http_upstream_random_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_upstream_random_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_upstream_random_module.o \ -+ src/http/modules/ngx_http_upstream_random_module.c -+ -+ -+objs/src/http/modules/ngx_http_upstream_keepalive_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_upstream_keepalive_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_upstream_keepalive_module.o \ -+ src/http/modules/ngx_http_upstream_keepalive_module.c -+ -+ -+objs/src/http/modules/ngx_http_upstream_zone_module.o: $(CORE_DEPS) $(HTTP_DEPS) \ -+ src/http/modules/ngx_http_upstream_zone_module.c -+ $(CC) -c $(CFLAGS) $(CORE_INCS) $(HTTP_INCS) \ -+ -o objs/src/http/modules/ngx_http_upstream_zone_module.o \ -+ src/http/modules/ngx_http_upstream_zone_module.c -+ -+ -+manpage: objs/nginx.8 -+ -+objs/nginx.8: man/nginx.8 objs/ngx_auto_config.h -+ sed -e "s|%%PREFIX%%|/nginx|" \ -+ -e "s|%%PID_PATH%%|/nginx/logs/nginx.pid|" \ -+ -e "s|%%CONF_PATH%%|/nginx/conf/nginx.conf|" \ -+ -e "s|%%ERROR_LOG_PATH%%|/nginx/logs/error.log|" \ -+ < man/nginx.8 > $@ -+ -+install: build -+ test -d '$(DESTDIR)/nginx' || mkdir -p '$(DESTDIR)/nginx' -+ -+ test -d '$(DESTDIR)/nginx/sbin' \ -+ || mkdir -p '$(DESTDIR)/nginx/sbin' -+ test ! -f '$(DESTDIR)/nginx/sbin/nginx' \ -+ || mv '$(DESTDIR)/nginx/sbin/nginx' \ -+ '$(DESTDIR)/nginx/sbin/nginx.old' -+ cp objs/nginx '$(DESTDIR)/nginx/sbin/nginx' -+ -+ test -d '$(DESTDIR)/nginx/conf' \ -+ || mkdir -p '$(DESTDIR)/nginx/conf' -+ -+ cp conf/koi-win '$(DESTDIR)/nginx/conf' -+ cp conf/koi-utf '$(DESTDIR)/nginx/conf' -+ cp conf/win-utf '$(DESTDIR)/nginx/conf' -+ -+ test -f '$(DESTDIR)/nginx/conf/mime.types' \ -+ || cp conf/mime.types '$(DESTDIR)/nginx/conf' -+ cp conf/mime.types '$(DESTDIR)/nginx/conf/mime.types.default' -+ -+ test -f '$(DESTDIR)/nginx/conf/fastcgi_params' \ -+ || cp conf/fastcgi_params '$(DESTDIR)/nginx/conf' -+ cp conf/fastcgi_params \ -+ '$(DESTDIR)/nginx/conf/fastcgi_params.default' -+ -+ test -f '$(DESTDIR)/nginx/conf/fastcgi.conf' \ -+ || cp conf/fastcgi.conf '$(DESTDIR)/nginx/conf' -+ cp conf/fastcgi.conf '$(DESTDIR)/nginx/conf/fastcgi.conf.default' -+ -+ test -f '$(DESTDIR)/nginx/conf/uwsgi_params' \ -+ || cp conf/uwsgi_params '$(DESTDIR)/nginx/conf' -+ cp conf/uwsgi_params \ -+ '$(DESTDIR)/nginx/conf/uwsgi_params.default' -+ -+ test -f '$(DESTDIR)/nginx/conf/scgi_params' \ -+ || cp conf/scgi_params '$(DESTDIR)/nginx/conf' -+ cp conf/scgi_params \ -+ '$(DESTDIR)/nginx/conf/scgi_params.default' -+ -+ test -f '$(DESTDIR)/nginx/conf/nginx.conf' \ -+ || cp conf/nginx.conf '$(DESTDIR)/nginx/conf/nginx.conf' -+ cp conf/nginx.conf '$(DESTDIR)/nginx/conf/nginx.conf.default' -+ -+ test -d '$(DESTDIR)/nginx/logs' \ -+ || mkdir -p '$(DESTDIR)/nginx/logs' -+ -+ test -d '$(DESTDIR)/nginx/logs' \ -+ || mkdir -p '$(DESTDIR)/nginx/logs' -+ -+ test -d '$(DESTDIR)/nginx/html' \ -+ || cp -R html '$(DESTDIR)/nginx' -+ -+ test -d '$(DESTDIR)/nginx/logs' \ -+ || mkdir -p '$(DESTDIR)/nginx/logs' -diff --git a/objs/nginx.8 b/objs/nginx.8 -new file mode 100755 -index 0000000..2adfa70 ---- /dev/null -+++ b/objs/nginx.8 -@@ -0,0 +1,214 @@ -+.\" -+.\" Copyright (C) 2010, 2019 Sergey A. Osokin -+.\" Copyright (C) Nginx, Inc. -+.\" All rights reserved. -+.\" -+.\" Redistribution and use in source and binary forms, with or without -+.\" modification, are permitted provided that the following conditions -+.\" are met: -+.\" 1. Redistributions of source code must retain the above copyright -+.\" notice, this list of conditions and the following disclaimer. -+.\" 2. Redistributions in binary form must reproduce the above copyright -+.\" notice, this list of conditions and the following disclaimer in the -+.\" documentation and/or other materials provided with the distribution. -+.\" -+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -+.\" SUCH DAMAGE. -+.\" -+.\" -+.Dd November 5, 2020 -+.Dt NGINX 8 -+.Os -+.Sh NAME -+.Nm nginx -+.Nd "HTTP and reverse proxy server, mail proxy server" -+.Sh SYNOPSIS -+.Nm -+.Op Fl ?hqTtVv -+.Op Fl c Ar file -+.Op Fl e Ar file -+.Op Fl g Ar directives -+.Op Fl p Ar prefix -+.Op Fl s Ar signal -+.Sh DESCRIPTION -+.Nm -+(pronounced -+.Dq engine x ) -+is an HTTP and reverse proxy server, a mail proxy server, and a generic -+TCP/UDP proxy server. -+It is known for its high performance, stability, rich feature set, simple -+configuration, and low resource consumption. -+.Pp -+The options are as follows: -+.Bl -tag -width ".Fl d Ar directives" -+.It Fl ?\& , h -+Print help. -+.It Fl c Ar file -+Use an alternative configuration -+.Ar file . -+.It Fl e Ar file -+Use an alternative error log -+.Ar file . -+Special value -+.Cm stderr -+indicates that the standard error output should be used. -+.It Fl g Ar directives -+Set global configuration directives. -+See -+.Sx EXAMPLES -+for details. -+.It Fl p Ar prefix -+Set the prefix path. -+The default value is -+.Pa /nginx . -+.It Fl q -+Suppress non-error messages during configuration testing. -+.It Fl s Ar signal -+Send a signal to the master process. -+The argument -+.Ar signal -+can be one of: -+.Cm stop , quit , reopen , reload . -+The following table shows the corresponding system signals: -+.Pp -+.Bl -tag -width ".Cm reopen" -compact -+.It Cm stop -+.Dv SIGTERM -+.It Cm quit -+.Dv SIGQUIT -+.It Cm reopen -+.Dv SIGUSR1 -+.It Cm reload -+.Dv SIGHUP -+.El -+.It Fl T -+Same as -+.Fl t , -+but additionally dump configuration files to standard output. -+.It Fl t -+Do not run, just test the configuration file. -+.Nm -+checks the configuration file syntax and then tries to open files -+referenced in the configuration file. -+.It Fl V -+Print the -+.Nm -+version, compiler version, and -+.Pa configure -+script parameters. -+.It Fl v -+Print the -+.Nm -+version. -+.El -+.Sh SIGNALS -+The master process of -+.Nm -+can handle the following signals: -+.Pp -+.Bl -tag -width ".Dv SIGINT , SIGTERM" -compact -+.It Dv SIGINT , SIGTERM -+Shut down quickly. -+.It Dv SIGHUP -+Reload configuration, start the new worker process with a new -+configuration, and gracefully shut down old worker processes. -+.It Dv SIGQUIT -+Shut down gracefully. -+.It Dv SIGUSR1 -+Reopen log files. -+.It Dv SIGUSR2 -+Upgrade the -+.Nm -+executable on the fly. -+.It Dv SIGWINCH -+Shut down worker processes gracefully. -+.El -+.Pp -+While there is no need to explicitly control worker processes normally, -+they support some signals too: -+.Pp -+.Bl -tag -width ".Dv SIGINT , SIGTERM" -compact -+.It Dv SIGTERM -+Shut down quickly. -+.It Dv SIGQUIT -+Shut down gracefully. -+.It Dv SIGUSR1 -+Reopen log files. -+.El -+.Sh DEBUGGING LOG -+To enable a debugging log, reconfigure -+.Nm -+to build with debugging: -+.Pp -+.Dl "./configure --with-debug ..." -+.Pp -+and then set the -+.Cm debug -+level of the -+.Va error_log : -+.Pp -+.Dl "error_log /path/to/log debug;" -+.Pp -+It is also possible to enable the debugging for a particular IP address: -+.Bd -literal -offset indent -+events { -+ debug_connection 127.0.0.1; -+} -+.Ed -+.Sh ENVIRONMENT -+The -+.Ev NGINX -+environment variable is used internally by -+.Nm -+and should not be set directly by the user. -+.Sh FILES -+.Bl -tag -width indent -+.It Pa /nginx/logs/nginx.pid -+Contains the process ID of -+.Nm . -+The contents of this file are not sensitive, so it can be world-readable. -+.It Pa /nginx/conf/nginx.conf -+The main configuration file. -+.It Pa /nginx/logs/error.log -+Error log file. -+.El -+.Sh EXIT STATUS -+Exit status is 0 on success, or 1 if the command fails. -+.Sh EXAMPLES -+Test configuration file -+.Pa ~/mynginx.conf -+with global directives for PID and quantity of worker processes: -+.Bd -literal -offset indent -+nginx -t -c ~/mynginx.conf \e -+ -g "pid /var/run/mynginx.pid; worker_processes 2;" -+.Ed -+.Sh SEE ALSO -+.\"Xr nginx.conf 5 -+.\"Pp -+Documentation at -+.Pa http://nginx.org/en/docs/ . -+.Pp -+For questions and technical support, please refer to -+.Pa http://nginx.org/en/support.html . -+.Sh HISTORY -+Development of -+.Nm -+started in 2002, with the first public release on October 4, 2004. -+.Sh AUTHORS -+.An -nosplit -+.An Igor Sysoev Aq Mt igor@sysoev.ru . -+.Pp -+This manual page was originally written by -+.An Sergey A. Osokin Aq Mt osa@FreeBSD.org.ru -+as a result of compiling many -+.Nm -+documents from all over the world. -diff --git a/objs/ngx_auto_config.h b/objs/ngx_auto_config.h -new file mode 100755 -index 0000000..e4552af ---- /dev/null -+++ b/objs/ngx_auto_config.h -@@ -0,0 +1,477 @@ -+#define NGX_CONFIGURE "\ -+ --prefix=/nginx \ -+ --with-http_sub_module \ -+ --with-select_module \ -+ --without-http_gzip_module \ -+ --without-pcre \ -+ --without-http_rewrite_module \ -+ --without-http_auth_basic_module \ -+ --without-http-cache" -+ -+#ifndef NGX_DEBUG -+#ifdef CONFIG_LIBNGINX_DEBUG -+#define NGX_DEBUG 1 -+#else -+#define NGX_DEBUG 0 -+#endif -+#endif -+ -+#ifndef NGX_COMPILER -+#define NGX_COMPILER "gcc 10.3.0 (Ubuntu 10.3.0-1ubuntu1~18.04~1) " -+#endif -+ -+#ifndef NGX_HAVE_GCC_ATOMIC -+#define NGX_HAVE_GCC_ATOMIC 1 -+#endif -+ -+#ifndef NGX_HAVE_C99_VARIADIC_MACROS -+#define NGX_HAVE_C99_VARIADIC_MACROS 1 -+#endif -+ -+#ifndef NGX_HAVE_GCC_VARIADIC_MACROS -+#define NGX_HAVE_GCC_VARIADIC_MACROS 1 -+#endif -+ -+#ifndef NGX_HAVE_GCC_BSWAP64 -+#define NGX_HAVE_GCC_BSWAP64 1 -+#endif -+ -+#ifndef NGX_HAVE_EPOLL -+#define NGX_HAVE_EPOLL 1 -+#endif -+ -+#ifndef NGX_HAVE_CLEAR_EVENT -+#define NGX_HAVE_CLEAR_EVENT 1 -+#endif -+ -+#ifndef NGX_HAVE_EPOLLRDHUP -+#define NGX_HAVE_EPOLLRDHUP 0 -+#endif -+ -+#ifndef NGX_HAVE_EPOLLEXCLUSIVE -+#define NGX_HAVE_EPOLLEXCLUSIVE 0 -+#endif -+ -+#ifndef NGX_HAVE_O_PATH -+#define NGX_HAVE_O_PATH 0 -+#endif -+ -+#ifndef NGX_HAVE_SENDFILE -+#define NGX_HAVE_SENDFILE 1 -+#endif -+ -+#ifndef NGX_HAVE_SENDFILE64 -+#define NGX_HAVE_SENDFILE64 1 -+#endif -+ -+#ifndef NGX_HAVE_PR_SET_DUMPABLE -+#define NGX_HAVE_PR_SET_DUMPABLE 1 -+#endif -+ -+#ifndef NGX_HAVE_PR_SET_KEEPCAPS -+#define NGX_HAVE_PR_SET_KEEPCAPS 1 -+#endif -+ -+#ifndef NGX_HAVE_CAPABILITIES -+#define NGX_HAVE_CAPABILITIES 0 -+#endif -+ -+#ifndef NGX_HAVE_GNU_CRYPT_R -+#define NGX_HAVE_GNU_CRYPT_R 1 -+#endif -+ -+#ifndef NGX_HAVE_NONALIGNED -+#define NGX_HAVE_NONALIGNED 1 -+#endif -+ -+#ifndef NGX_CPU_CACHE_LINE -+#define NGX_CPU_CACHE_LINE 64 -+#endif -+ -+#define NGX_KQUEUE_UDATA_T (void *) -+ -+#ifndef NGX_HAVE_POSIX_FADVISE -+#define NGX_HAVE_POSIX_FADVISE 0 -+#endif -+ -+#ifndef NGX_HAVE_O_DIRECT -+#define NGX_HAVE_O_DIRECT 0 -+#endif -+ -+#ifndef NGX_HAVE_ALIGNED_DIRECTIO -+#define NGX_HAVE_ALIGNED_DIRECTIO 0 -+#endif -+ -+#ifndef NGX_HAVE_STATFS -+#define NGX_HAVE_STATFS 1 -+#endif -+ -+#ifndef NGX_HAVE_STATVFS -+#define NGX_HAVE_STATVFS 1 -+#endif -+ -+#ifdef CONFIG_LIBNGINX_HTTP_UPSTREAM_RANDOM -+#ifndef NGX_STAT_STUB -+#define NGX_STAT_STUB 1 -+#endif -+#endif -+ -+#ifndef NGX_HAVE_DLOPEN -+#define NGX_HAVE_DLOPEN 1 -+#endif -+ -+#ifndef NGX_HAVE_SCHED_YIELD -+#define NGX_HAVE_SCHED_YIELD 1 -+#endif -+ -+#ifndef NGX_HAVE_SCHED_SETAFFINITY -+#define NGX_HAVE_SCHED_SETAFFINITY 0 -+#endif -+ -+#ifndef NGX_HAVE_REUSEPORT -+#define NGX_HAVE_REUSEPORT 1 -+#endif -+ -+#ifndef NGX_HAVE_TRANSPARENT_PROXY -+#define NGX_HAVE_TRANSPARENT_PROXY 1 -+#endif -+ -+#ifndef NGX_HAVE_IP_BIND_ADDRESS_NO_PORT -+#define NGX_HAVE_IP_BIND_ADDRESS_NO_PORT 0 -+#endif -+ -+#ifndef NGX_HAVE_IP_PKTINFO -+#define NGX_HAVE_IP_PKTINFO 0 -+#endif -+ -+#ifndef NGX_HAVE_IPV6_RECVPKTINFO -+#define NGX_HAVE_IPV6_RECVPKTINFO 0 -+#endif -+ -+#ifndef NGX_HAVE_DEFERRED_ACCEPT -+#define NGX_HAVE_DEFERRED_ACCEPT 1 -+#endif -+ -+#ifndef NGX_HAVE_KEEPALIVE_TUNABLE -+#define NGX_HAVE_KEEPALIVE_TUNABLE 1 -+#endif -+ -+#ifndef NGX_HAVE_TCP_FASTOPEN -+#define NGX_HAVE_TCP_FASTOPEN 0 -+#endif -+ -+#ifndef NGX_HAVE_TCP_INFO -+#define NGX_HAVE_TCP_INFO 0 -+#endif -+ -+#ifndef NGX_HAVE_ACCEPT4 -+#define NGX_HAVE_ACCEPT4 0 -+#endif -+ -+#ifndef NGX_HAVE_EVENTFD -+#define NGX_HAVE_EVENTFD 0 -+#endif -+ -+#ifndef NGX_HAVE_SYS_EVENTFD_H -+#define NGX_HAVE_SYS_EVENTFD_H 1 -+#endif -+ -+#ifndef NGX_HAVE_UNIX_DOMAIN -+#define NGX_HAVE_UNIX_DOMAIN 0 -+#endif -+ -+#ifndef NGX_PTR_SIZE -+#define NGX_PTR_SIZE 8 -+#endif -+ -+#ifndef NGX_SIG_ATOMIC_T_SIZE -+#define NGX_SIG_ATOMIC_T_SIZE 4 -+#endif -+ -+#ifndef NGX_HAVE_LITTLE_ENDIAN -+#define NGX_HAVE_LITTLE_ENDIAN 1 -+#endif -+ -+#ifndef NGX_MAX_SIZE_T_VALUE -+#define NGX_MAX_SIZE_T_VALUE 9223372036854775807LL -+#endif -+ -+#ifndef NGX_SIZE_T_LEN -+#define NGX_SIZE_T_LEN (sizeof("-9223372036854775808") - 1) -+#endif -+ -+#ifndef NGX_MAX_OFF_T_VALUE -+#define NGX_MAX_OFF_T_VALUE 9223372036854775807LL -+#endif -+ -+#ifndef NGX_OFF_T_LEN -+#define NGX_OFF_T_LEN (sizeof("-9223372036854775808") - 1) -+#endif -+ -+#ifndef NGX_TIME_T_SIZE -+#define NGX_TIME_T_SIZE 8 -+#endif -+ -+#ifndef NGX_TIME_T_LEN -+#define NGX_TIME_T_LEN (sizeof("-9223372036854775808") - 1) -+#endif -+ -+#ifndef NGX_MAX_TIME_T_VALUE -+#define NGX_MAX_TIME_T_VALUE 9223372036854775807LL -+#endif -+ -+#ifndef NGX_HAVE_INET6 -+#define NGX_HAVE_INET6 0 -+#endif -+ -+#ifndef NGX_HAVE_PREAD -+#define NGX_HAVE_PREAD 0 -+#endif -+ -+/*#ifndef NGX_HAVE_PWRITE -+#define NGX_HAVE_PWRITE 1 -+#endif*/ -+ -+#ifndef NGX_HAVE_PWRITEV -+#define NGX_HAVE_PWRITEV 1 -+#endif -+ -+#ifndef NGX_SYS_NERR -+#define NGX_SYS_NERR 12 /* was 135, Unikraft does not have all the error codes */ -+#endif -+ -+#ifndef NGX_HAVE_LOCALTIME_R -+#define NGX_HAVE_LOCALTIME_R 1 -+#endif -+ -+#ifndef NGX_HAVE_CLOCK_MONOTONIC -+#define NGX_HAVE_CLOCK_MONOTONIC 0 -+#endif -+ -+#ifndef NGX_HAVE_POSIX_MEMALIGN -+#define NGX_HAVE_POSIX_MEMALIGN 1 -+#endif -+ -+#ifndef NGX_HAVE_MEMALIGN -+#define NGX_HAVE_MEMALIGN 1 -+#endif -+ -+#ifndef NGX_HAVE_MAP_ANON -+#define NGX_HAVE_MAP_ANON 1 -+#endif -+ -+#ifndef NGX_HAVE_MAP_DEVZERO -+#define NGX_HAVE_MAP_DEVZERO 1 -+#endif -+ -+#ifndef NGX_HAVE_SYSVSHM -+#define NGX_HAVE_SYSVSHM 1 -+#endif -+ -+#ifndef NGX_HAVE_POSIX_SEM -+#define NGX_HAVE_POSIX_SEM 1 -+#endif -+ -+#ifndef NGX_HAVE_MSGHDR_MSG_CONTROL -+#define NGX_HAVE_MSGHDR_MSG_CONTROL 1 -+#endif -+ -+#ifndef NGX_HAVE_FIONBIO -+#define NGX_HAVE_FIONBIO 1 /* ioctl(FIONBIO) */ -+#endif -+ -+#ifndef NGX_HAVE_GMTOFF -+#define NGX_HAVE_GMTOFF 1 -+#endif -+ -+#ifndef NGX_HAVE_D_TYPE -+#define NGX_HAVE_D_TYPE 1 -+#endif -+ -+#ifndef NGX_HAVE_SC_NPROCESSORS_ONLN -+#define NGX_HAVE_SC_NPROCESSORS_ONLN 1 -+#endif -+ -+#ifndef NGX_HAVE_LEVEL1_DCACHE_LINESIZE -+#define NGX_HAVE_LEVEL1_DCACHE_LINESIZE 0 -+#endif -+ -+#ifndef NGX_HAVE_OPENAT -+#define NGX_HAVE_OPENAT 1 -+#endif -+ -+#ifndef NGX_HAVE_GETADDRINFO -+#define NGX_HAVE_GETADDRINFO 1 -+#endif -+ -+#ifndef NGX_HAVE_SELECT -+#define NGX_HAVE_SELECT 1 -+#endif -+ -+#ifdef CONFIG_LIBNGINX_HTTP_V2 -+#ifndef NGX_HTTP_V2 -+#define NGX_HTTP_V2 1 -+#endif -+#else -+#ifndef NGX_HTTP_V2 -+#define NGX_HTTP_V2 0 -+#endif -+#endif -+ -+#ifndef NGX_SSL -+#ifdef CONFIG_LIBSSL -+#define NGX_SSL 1 -+#else -+#define NGX_SSL 0 -+#endif -+#endif -+ -+#ifndef NGX_OPENSSL -+#if defined(CONFIG_LIBSSL) -+#define NGX_OPENSSL 1 -+#else -+#define NGX_OPENSSL 0 -+#endif -+#endif -+ -+#ifndef NGX_HTTP_SSL -+#ifdef CONFIG_LIBNGINX_HTTP_SSL -+#define NGX_HTTP_SSL 1 -+#else -+#define NGX_HTTP_SSL 0 -+#endif -+#endif -+ -+#ifndef NGX_HTTP_CACHE -+#define NGX_HTTP_CACHE 0 /* disabled module */ -+#endif -+ -+#ifndef NGX_HTTP_HEADERS -+#define NGX_HTTP_HEADERS 1 -+#endif -+ -+#ifndef NGX_HTTP_GZIP -+#ifdef CONFIG_LIBNGINX_HTTP_GZIP -+#define NGX_HTTP_GZIP 1 -+#else -+#define NGX_HTTP_GZIP 0 -+#endif -+#endif -+ -+#define CONFIG_LIBNGINX_HTTP_SSI -+#ifdef CONFIG_LIBNGINX_HTTP_SSI -+#ifndef NGX_HTTP_SSI -+#define NGX_HTTP_SSI 1 -+#endif -+#endif -+ -+#ifdef CONFIG_LIBCRYPTO -+#ifndef NGX_CRYPT -+#define NGX_CRYPT 1 -+#endif -+#else -+#ifndef NGX_CRYPT -+#define NGX_CRYPT 0 -+#endif -+#endif -+ -+#ifndef NGX_HTTP_X_FORWARDED_FOR -+#define NGX_HTTP_X_FORWARDED_FOR 1 -+#endif -+ -+#ifndef NGX_HTTP_X_FORWARDED_FOR -+#define NGX_HTTP_X_FORWARDED_FOR 1 -+#endif -+ -+#ifndef NGX_HTTP_UPSTREAM_ZONE -+#define NGX_HTTP_UPSTREAM_ZONE 1 -+#endif -+ -+#ifdef CONFIG_LIBPCRE -+#ifndef NGX_PCRE -+#define NGX_PCRE 1 -+#endif -+ -+#ifndef NGX_HAVE_PCRE_JIT -+#define NGX_HAVE_PCRE_JIT 0 -+#endif -+#endif -+ -+#ifdef CONFIG_LIBZLIB -+#ifndef NGX_ZLIB -+#define NGX_ZLIB 1 -+#endif -+#else -+#ifndef NGX_ZLIB -+#define NGX_ZLIB 0 -+#endif -+#endif -+ -+#ifndef NGX_PREFIX -+#define NGX_PREFIX "/nginx/" -+#endif -+ -+#ifndef NGX_CONF_PREFIX -+#define NGX_CONF_PREFIX "conf/" -+#endif -+ -+#ifndef NGX_SBIN_PATH -+#define NGX_SBIN_PATH "sbin/nginx" -+#endif -+ -+#ifndef NGX_CONF_PATH -+#define NGX_CONF_PATH "conf/nginx.conf" -+#endif -+ -+#ifndef NGX_PID_PATH -+#define NGX_PID_PATH "logs/nginx.pid" -+#endif -+ -+#ifndef NGX_LOCK_PATH -+#define NGX_LOCK_PATH "logs/nginx.lock" -+#endif -+ -+#ifndef NGX_ERROR_LOG_PATH -+#define NGX_ERROR_LOG_PATH "logs/error.log" -+#endif -+ -+#ifndef NGX_HTTP_LOG_PATH -+#define NGX_HTTP_LOG_PATH "logs/access.log" -+#endif -+ -+#ifndef NGX_HTTP_CLIENT_TEMP_PATH -+#define NGX_HTTP_CLIENT_TEMP_PATH "client_body_temp" -+#endif -+ -+#ifndef NGX_HTTP_PROXY_TEMP_PATH -+#define NGX_HTTP_PROXY_TEMP_PATH "proxy_temp" -+#endif -+ -+#ifndef NGX_HTTP_FASTCGI_TEMP_PATH -+#define NGX_HTTP_FASTCGI_TEMP_PATH "fastcgi_temp" -+#endif -+ -+#ifndef NGX_HTTP_UWSGI_TEMP_PATH -+#define NGX_HTTP_UWSGI_TEMP_PATH "uwsgi_temp" -+#endif -+ -+#ifndef NGX_HTTP_SCGI_TEMP_PATH -+#define NGX_HTTP_SCGI_TEMP_PATH "scgi_temp" -+#endif -+ -+#ifndef NGX_SUPPRESS_WARN -+#define NGX_SUPPRESS_WARN 1 -+#endif -+ -+#ifndef NGX_SMP -+#define NGX_SMP 0 -+#endif -+ -+#ifndef NGX_USER -+#define NGX_USER "root" -+#endif -+ -+#ifndef NGX_GROUP -+#define NGX_GROUP "root" -+#endif -+ -diff --git a/objs/ngx_auto_headers.h b/objs/ngx_auto_headers.h -new file mode 100755 -index 0000000..6710d90 ---- /dev/null -+++ b/objs/ngx_auto_headers.h -@@ -0,0 +1,51 @@ -+ -+ -+#ifndef NGX_HAVE_UNISTD_H -+#define NGX_HAVE_UNISTD_H 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_INTTYPES_H -+#define NGX_HAVE_INTTYPES_H 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_LIMITS_H -+#define NGX_HAVE_LIMITS_H 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_SYS_PARAM_H -+#define NGX_HAVE_SYS_PARAM_H 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_SYS_MOUNT_H -+#define NGX_HAVE_SYS_MOUNT_H 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_SYS_STATVFS_H -+#define NGX_HAVE_SYS_STATVFS_H 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_CRYPT_H -+#define NGX_HAVE_CRYPT_H 1 -+#endif -+ -+ -+#ifndef NGX_LINUX -+#define NGX_LINUX 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_SYS_PRCTL_H -+#define NGX_HAVE_SYS_PRCTL_H 1 -+#endif -+ -+ -+#ifndef NGX_HAVE_SYS_VFS_H -+#define NGX_HAVE_SYS_VFS_H 1 -+#endif -+ -diff --git a/objs/ngx_modules.c b/objs/ngx_modules.c -new file mode 100755 -index 0000000..0fb06cc ---- /dev/null -+++ b/objs/ngx_modules.c -@@ -0,0 +1,162 @@ -+ -+#include -+#include -+ -+ -+ -+extern ngx_module_t ngx_core_module; -+extern ngx_module_t ngx_errlog_module; -+extern ngx_module_t ngx_conf_module; -+extern ngx_module_t ngx_events_module; -+extern ngx_module_t ngx_event_core_module; -+extern ngx_module_t ngx_epoll_module; -+extern ngx_module_t ngx_select_module; -+extern ngx_module_t ngx_http_module; -+extern ngx_module_t ngx_http_core_module; -+extern ngx_module_t ngx_http_log_module; -+extern ngx_module_t ngx_http_upstream_module; -+extern ngx_module_t ngx_http_static_module; -+extern ngx_module_t ngx_http_autoindex_module; -+extern ngx_module_t ngx_http_index_module; -+extern ngx_module_t ngx_http_mirror_module; -+extern ngx_module_t ngx_http_try_files_module; -+extern ngx_module_t ngx_http_access_module; -+extern ngx_module_t ngx_http_limit_conn_module; -+extern ngx_module_t ngx_http_limit_req_module; -+extern ngx_module_t ngx_http_geo_module; -+extern ngx_module_t ngx_http_map_module; -+extern ngx_module_t ngx_http_split_clients_module; -+extern ngx_module_t ngx_http_referer_module; -+extern ngx_module_t ngx_http_proxy_module; -+extern ngx_module_t ngx_http_fastcgi_module; -+extern ngx_module_t ngx_http_uwsgi_module; -+extern ngx_module_t ngx_http_scgi_module; -+extern ngx_module_t ngx_http_memcached_module; -+extern ngx_module_t ngx_http_empty_gif_module; -+extern ngx_module_t ngx_http_browser_module; -+extern ngx_module_t ngx_http_upstream_hash_module; -+extern ngx_module_t ngx_http_upstream_ip_hash_module; -+extern ngx_module_t ngx_http_upstream_least_conn_module; -+extern ngx_module_t ngx_http_upstream_random_module; -+extern ngx_module_t ngx_http_upstream_keepalive_module; -+extern ngx_module_t ngx_http_upstream_zone_module; -+extern ngx_module_t ngx_http_write_filter_module; -+extern ngx_module_t ngx_http_header_filter_module; -+extern ngx_module_t ngx_http_chunked_filter_module; -+extern ngx_module_t ngx_http_range_header_filter_module; -+extern ngx_module_t ngx_http_postpone_filter_module; -+extern ngx_module_t ngx_http_ssi_filter_module; -+extern ngx_module_t ngx_http_charset_filter_module; -+extern ngx_module_t ngx_http_sub_filter_module; -+extern ngx_module_t ngx_http_userid_filter_module; -+extern ngx_module_t ngx_http_headers_filter_module; -+extern ngx_module_t ngx_http_copy_filter_module; -+extern ngx_module_t ngx_http_range_body_filter_module; -+extern ngx_module_t ngx_http_not_modified_filter_module; -+ -+ngx_module_t *ngx_modules[] = { -+ &ngx_core_module, -+ &ngx_errlog_module, -+ &ngx_conf_module, -+ &ngx_events_module, -+ &ngx_event_core_module, -+ &ngx_epoll_module, -+ &ngx_select_module, -+ &ngx_http_module, -+ &ngx_http_core_module, -+ &ngx_http_log_module, -+ &ngx_http_upstream_module, -+ &ngx_http_static_module, -+ &ngx_http_autoindex_module, -+ &ngx_http_index_module, -+ &ngx_http_mirror_module, -+ &ngx_http_try_files_module, -+ &ngx_http_access_module, -+ &ngx_http_limit_conn_module, -+ &ngx_http_limit_req_module, -+ &ngx_http_geo_module, -+ &ngx_http_map_module, -+ &ngx_http_split_clients_module, -+ &ngx_http_referer_module, -+ &ngx_http_proxy_module, -+ &ngx_http_fastcgi_module, -+ &ngx_http_uwsgi_module, -+ &ngx_http_scgi_module, -+ &ngx_http_memcached_module, -+ &ngx_http_empty_gif_module, -+ &ngx_http_browser_module, -+ &ngx_http_upstream_hash_module, -+ &ngx_http_upstream_ip_hash_module, -+ &ngx_http_upstream_least_conn_module, -+ &ngx_http_upstream_random_module, -+ &ngx_http_upstream_keepalive_module, -+ &ngx_http_upstream_zone_module, -+ &ngx_http_write_filter_module, -+ &ngx_http_header_filter_module, -+ &ngx_http_chunked_filter_module, -+ &ngx_http_range_header_filter_module, -+ &ngx_http_postpone_filter_module, -+ &ngx_http_ssi_filter_module, -+ &ngx_http_charset_filter_module, -+ &ngx_http_sub_filter_module, -+ &ngx_http_userid_filter_module, -+ &ngx_http_headers_filter_module, -+ &ngx_http_copy_filter_module, -+ &ngx_http_range_body_filter_module, -+ &ngx_http_not_modified_filter_module, -+ NULL -+}; -+ -+char *ngx_module_names[] = { -+ "ngx_core_module", -+ "ngx_errlog_module", -+ "ngx_conf_module", -+ "ngx_events_module", -+ "ngx_event_core_module", -+ "ngx_epoll_module", -+ "ngx_select_module", -+ "ngx_http_module", -+ "ngx_http_core_module", -+ "ngx_http_log_module", -+ "ngx_http_upstream_module", -+ "ngx_http_static_module", -+ "ngx_http_autoindex_module", -+ "ngx_http_index_module", -+ "ngx_http_mirror_module", -+ "ngx_http_try_files_module", -+ "ngx_http_access_module", -+ "ngx_http_limit_conn_module", -+ "ngx_http_limit_req_module", -+ "ngx_http_geo_module", -+ "ngx_http_map_module", -+ "ngx_http_split_clients_module", -+ "ngx_http_referer_module", -+ "ngx_http_proxy_module", -+ "ngx_http_fastcgi_module", -+ "ngx_http_uwsgi_module", -+ "ngx_http_scgi_module", -+ "ngx_http_memcached_module", -+ "ngx_http_empty_gif_module", -+ "ngx_http_browser_module", -+ "ngx_http_upstream_hash_module", -+ "ngx_http_upstream_ip_hash_module", -+ "ngx_http_upstream_least_conn_module", -+ "ngx_http_upstream_random_module", -+ "ngx_http_upstream_keepalive_module", -+ "ngx_http_upstream_zone_module", -+ "ngx_http_write_filter_module", -+ "ngx_http_header_filter_module", -+ "ngx_http_chunked_filter_module", -+ "ngx_http_range_header_filter_module", -+ "ngx_http_postpone_filter_module", -+ "ngx_http_ssi_filter_module", -+ "ngx_http_charset_filter_module", -+ "ngx_http_sub_filter_module", -+ "ngx_http_userid_filter_module", -+ "ngx_http_headers_filter_module", -+ "ngx_http_copy_filter_module", -+ "ngx_http_range_body_filter_module", -+ "ngx_http_not_modified_filter_module", -+ NULL -+}; -+ -diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h -index 88fef47..81df64c 100644 ---- a/src/os/unix/ngx_linux_config.h -+++ b/src/os/unix/ngx_linux_config.h -@@ -47,6 +47,7 @@ - #include - #include - #include -+#include - - #include /* tzset() */ - #include /* memalign() */