From 87f5e7e731bf1058b12a43e6abb561518e7b50df Mon Sep 17 00:00:00 2001 From: Fabrizio Bertocci Date: Thu, 25 Mar 2021 10:00:19 -0400 Subject: [PATCH] Added implementation for syslog related functionality. On Unix, the syslog facility will connect to the syslogd through the Unix socket /dev/log. On Windows it uses the event logging API (ReportEvent). Had to add the constants for the LOG_xxxx values for Windows. --- libc/nt/advapi32/DeregisterEventSource.s | 13 +++++ libc/nt/advapi32/RegisterEventSourceA.s | 10 ++++ libc/nt/advapi32/RegisterEventSourceW.s | 10 ++++ libc/nt/advapi32/ReportEventA.s | 10 ++++ libc/nt/advapi32/ReportEventW.s | 10 ++++ libc/nt/events.h | 13 +++++ libc/sock/sock.h | 5 ++ libc/sock/sock.mk | 5 +- libc/sysv/consts.sh | 66 ++++++++++++------------ libc/sysv/consts/LOG_ALERT.S | 2 +- libc/sysv/consts/LOG_AUTH.S | 2 +- libc/sysv/consts/LOG_CONS.S | 2 +- libc/sysv/consts/LOG_CRIT.S | 2 +- libc/sysv/consts/LOG_CRON.S | 2 +- libc/sysv/consts/LOG_DAEMON.S | 2 +- libc/sysv/consts/LOG_DEBUG.S | 2 +- libc/sysv/consts/LOG_ERR.S | 2 +- libc/sysv/consts/LOG_FACMASK.S | 2 +- libc/sysv/consts/LOG_INFO.S | 2 +- libc/sysv/consts/LOG_LOCAL0.S | 2 +- libc/sysv/consts/LOG_LOCAL1.S | 2 +- libc/sysv/consts/LOG_LOCAL2.S | 2 +- libc/sysv/consts/LOG_LOCAL3.S | 2 +- libc/sysv/consts/LOG_LOCAL4.S | 2 +- libc/sysv/consts/LOG_LOCAL5.S | 2 +- libc/sysv/consts/LOG_LOCAL6.S | 2 +- libc/sysv/consts/LOG_LOCAL7.S | 2 +- libc/sysv/consts/LOG_LPR.S | 2 +- libc/sysv/consts/LOG_MAIL.S | 2 +- libc/sysv/consts/LOG_NDELAY.S | 2 +- libc/sysv/consts/LOG_NEWS.S | 2 +- libc/sysv/consts/LOG_NFACILITIES.S | 2 +- libc/sysv/consts/LOG_NOTICE.S | 2 +- libc/sysv/consts/LOG_NOWAIT.S | 2 +- libc/sysv/consts/LOG_ODELAY.S | 2 +- libc/sysv/consts/LOG_PERROR.S | 2 +- libc/sysv/consts/LOG_PID.S | 2 +- libc/sysv/consts/LOG_PRIMASK.S | 2 +- libc/sysv/consts/LOG_SYSLOG.S | 2 +- libc/sysv/consts/LOG_USER.S | 2 +- libc/sysv/consts/LOG_UUCP.S | 2 +- libc/sysv/consts/LOG_WARNING.S | 2 +- libc/sysv/consts/log.h | 7 +++ 43 files changed, 148 insertions(+), 67 deletions(-) diff --git a/libc/nt/advapi32/DeregisterEventSource.s b/libc/nt/advapi32/DeregisterEventSource.s index d1c3d2643..f8ec53bd1 100644 --- a/libc/nt/advapi32/DeregisterEventSource.s +++ b/libc/nt/advapi32/DeregisterEventSource.s @@ -1,2 +1,15 @@ .include "o/libc/nt/codegen.inc" .imp advapi32,__imp_DeregisterEventSource,DeregisterEventSource,1239 + + .text.windows +DeregisterEventSource: + push %rbp + mov %rsp,%rbp + .profilable + mov %rdi,%rcx + sub $32,%rsp + call *__imp_DeregisterEventSource(%rip) + leave + ret + .endfn DeregisterEventSource,globl + .previous diff --git a/libc/nt/advapi32/RegisterEventSourceA.s b/libc/nt/advapi32/RegisterEventSourceA.s index 2830af98b..e742c3632 100644 --- a/libc/nt/advapi32/RegisterEventSourceA.s +++ b/libc/nt/advapi32/RegisterEventSourceA.s @@ -1,2 +1,12 @@ .include "o/libc/nt/codegen.inc" .imp advapi32,__imp_RegisterEventSourceA,RegisterEventSourceA,1686 + + .text.windows +RegisterEventSourceA: + push %rbp + mov %rsp,%rbp + .profilable + mov __imp_RegisterEventSourceA(%rip),%rax + jmp __sysv2nt + .endfn RegisterEventSourceA,globl + .previous diff --git a/libc/nt/advapi32/RegisterEventSourceW.s b/libc/nt/advapi32/RegisterEventSourceW.s index 21b73b787..c01cd348c 100644 --- a/libc/nt/advapi32/RegisterEventSourceW.s +++ b/libc/nt/advapi32/RegisterEventSourceW.s @@ -1,2 +1,12 @@ .include "o/libc/nt/codegen.inc" .imp advapi32,__imp_RegisterEventSourceW,RegisterEventSourceW,1687 + + .text.windows +RegisterEventSourceW: + push %rbp + mov %rsp,%rbp + .profilable + mov __imp_RegisterEventSourceW(%rip),%rax + jmp __sysv2nt + .endfn RegisterEventSourceW,globl + .previous diff --git a/libc/nt/advapi32/ReportEventA.s b/libc/nt/advapi32/ReportEventA.s index e9d133b36..37a67e0fd 100644 --- a/libc/nt/advapi32/ReportEventA.s +++ b/libc/nt/advapi32/ReportEventA.s @@ -1,2 +1,12 @@ .include "o/libc/nt/codegen.inc" .imp advapi32,__imp_ReportEventA,ReportEventA,1704 + + .text.windows +ReportEventA: + push %rbp + mov %rsp,%rbp + .profilable + mov __imp_ReportEventA(%rip),%rax + jmp __sysv2nt8 + .endfn ReportEventA,globl + .previous diff --git a/libc/nt/advapi32/ReportEventW.s b/libc/nt/advapi32/ReportEventW.s index 294ac6261..6c36b2efe 100644 --- a/libc/nt/advapi32/ReportEventW.s +++ b/libc/nt/advapi32/ReportEventW.s @@ -1,2 +1,12 @@ .include "o/libc/nt/codegen.inc" .imp advapi32,__imp_ReportEventW,ReportEventW,1705 + + .text.windows +ReportEventW: + push %rbp + mov %rsp,%rbp + .profilable + mov __imp_ReportEventW(%rip),%rax + jmp __sysv2nt8 + .endfn ReportEventW,globl + .previous diff --git a/libc/nt/events.h b/libc/nt/events.h index f6a2eee09..8530bc22b 100644 --- a/libc/nt/events.h +++ b/libc/nt/events.h @@ -39,6 +39,19 @@ bool32 GetCursorPos(struct NtPoint *lpPoint); int64_t SendMessage(int64_t hWnd, uint32_t Msg, uint64_t wParam, int64_t lParam); +#define EVENTLOG_SUCCESS 0x00000000 +#define EVENTLOG_ERROR_TYPE 0x00000001 +#define EVENTLOG_WARNING_TYPE 0x00000002 +#define EVENTLOG_INFORMATION_TYPE 0x00000004 +#define EVENTLOG_AUDIT_SUCCESS 0x00000008 +#define EVENTLOG_AUDIT_FAILURE 0x00000010 + +int32_t ReportEventA(int64_t handle, uint16_t wType, uint16_t wCategory, + uint32_t dwEventID, const char *lpUserId, uint16_t wNumStrings, + uint32_t dwDataSize, const char **lpStrings, void **lpRawData); +int64_t RegisterEventSourceA(const char *lpUNCServerName, const char *lpSourceName); +int32_t DeregisterEventSource(uint64_t handle); + COSMOPOLITAN_C_END_ #endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_LIBC_NT_EVENTS_H_ */ diff --git a/libc/sock/sock.h b/libc/sock/sock.h index b40bc2955..f5e389677 100644 --- a/libc/sock/sock.h +++ b/libc/sock/sock.h @@ -40,6 +40,11 @@ struct sockaddr_in { /* Linux+NT ABI */ uint8_t sin_zero[8]; }; +struct sockaddr_un { + uint16_t sun_family; /* AF_UNIX */ + char sun_path[14];/* path */ +}; + struct sockaddr_storage { union { uint16_t ss_family; diff --git a/libc/sock/sock.mk b/libc/sock/sock.mk index 217c2c88a..6c533a50b 100644 --- a/libc/sock/sock.mk +++ b/libc/sock/sock.mk @@ -24,8 +24,11 @@ LIBC_SOCK_A_DIRECTDEPS = \ LIBC_FMT \ LIBC_INTRIN \ LIBC_MEM \ + LIBC_TIME \ + LIBC_STR \ + LIBC_UNICODE \ LIBC_NEXGEN32E \ - LIBC_NT_KERNEL32 \ + LIBC_NT_ADVAPI32 \ LIBC_NT_KERNEL32 \ LIBC_NT_MSWSOCK \ LIBC_NT_NTDLL \ diff --git a/libc/sysv/consts.sh b/libc/sysv/consts.sh index 59c3a5538..897e1bb40 100755 --- a/libc/sysv/consts.sh +++ b/libc/sysv/consts.sh @@ -842,41 +842,41 @@ syscon pr PR_SET_PTRACER 0x59616d61 0 0 0 0 0 syscon log LOG_EMERG 0 0 0 0 0 0 # consensus syscon log LOG_KERN 0 0 0 0 0 0 # consensus -syscon log LOG_ALERT 1 1 1 1 1 0 # unix consensus -syscon log LOG_PID 1 1 1 1 1 0 # unix consensus -syscon log LOG_CONS 2 2 2 2 2 0 # unix consensus -syscon log LOG_CRIT 2 2 2 2 2 0 # unix consensus -syscon log LOG_ERR 3 3 3 3 3 0 # unix consensus -syscon log LOG_ODELAY 4 4 4 4 4 0 # unix consensus -syscon log LOG_WARNING 4 4 4 4 4 0 # unix consensus -syscon log LOG_NOTICE 5 5 5 5 5 0 # unix consensus -syscon log LOG_INFO 6 6 6 6 6 0 # unix consensus -syscon log LOG_DEBUG 7 7 7 7 7 0 # unix consensus -syscon log LOG_PRIMASK 7 7 7 7 7 0 # unix consensus -syscon log LOG_NDELAY 8 8 8 8 8 0 # unix consensus -syscon log LOG_USER 8 8 8 8 8 0 # unix consensus -syscon log LOG_MAIL 0x10 0x10 0x10 0x10 0x10 0 # unix consensus -syscon log LOG_NOWAIT 0x10 0x10 0x10 0x10 0x10 0 # unix consensus -syscon log LOG_DAEMON 24 24 24 24 24 0 # unix consensus -syscon log LOG_NFACILITIES 24 25 24 24 24 0 -syscon log LOG_AUTH 0x20 0x20 0x20 0x20 0x20 0 # unix consensus -syscon log LOG_PERROR 0x20 0x20 0x20 0x20 0x20 0 # unix consensus -syscon log LOG_SYSLOG 40 40 40 40 40 0 # unix consensus -syscon log LOG_LPR 48 48 48 48 48 0 # unix consensus -syscon log LOG_NEWS 56 56 56 56 56 0 # unix consensus -syscon log LOG_UUCP 0x40 0x40 0x40 0x40 0x40 0 # unix consensus -syscon log LOG_CRON 72 72 72 72 72 0 # unix consensus +syscon log LOG_ALERT 1 1 1 1 1 1 # unix consensus +syscon log LOG_PID 1 1 1 1 1 1 # unix consensus +syscon log LOG_CONS 2 2 2 2 2 2 # unix consensus +syscon log LOG_CRIT 2 2 2 2 2 2 # unix consensus +syscon log LOG_ERR 3 3 3 3 3 3 # unix consensus +syscon log LOG_ODELAY 4 4 4 4 4 4 # unix consensus +syscon log LOG_WARNING 4 4 4 4 4 4 # unix consensus +syscon log LOG_NOTICE 5 5 5 5 5 5 # unix consensus +syscon log LOG_INFO 6 6 6 6 6 6 # unix consensus +syscon log LOG_DEBUG 7 7 7 7 7 7 # unix consensus +syscon log LOG_PRIMASK 7 7 7 7 7 7 # unix consensus +syscon log LOG_NDELAY 8 8 8 8 8 8 # unix consensus +syscon log LOG_USER 8 8 8 8 8 8 # unix consensus +syscon log LOG_MAIL 0x10 0x10 0x10 0x10 0x10 0x10 # unix consensus +syscon log LOG_NOWAIT 0x10 0x10 0x10 0x10 0x10 0x10 # unix consensus +syscon log LOG_DAEMON 24 24 24 24 24 24 # unix consensus +syscon log LOG_NFACILITIES 24 25 24 24 24 24 +syscon log LOG_AUTH 0x20 0x20 0x20 0x20 0x20 0x20 # unix consensus +syscon log LOG_PERROR 0x20 0x20 0x20 0x20 0x20 0x20 # unix consensus +syscon log LOG_SYSLOG 40 40 40 40 40 40 # unix consensus +syscon log LOG_LPR 48 48 48 48 48 48 # unix consensus +syscon log LOG_NEWS 56 56 56 56 56 56 # unix consensus +syscon log LOG_UUCP 0x40 0x40 0x40 0x40 0x40 40 # unix consensus +syscon log LOG_CRON 72 72 72 72 72 72 # unix consensus syscon log LOG_SELECT 76 0 0 0 0 0 syscon log LOG_SENSE 77 0 0 0 0 0 -syscon log LOG_LOCAL0 0x80 0x80 0x80 0x80 0x80 0 # unix consensus -syscon log LOG_LOCAL1 136 136 136 136 136 0 # unix consensus -syscon log LOG_LOCAL2 144 144 144 144 144 0 # unix consensus -syscon log LOG_LOCAL3 152 152 152 152 152 0 # unix consensus -syscon log LOG_LOCAL4 160 160 160 160 160 0 # unix consensus -syscon log LOG_LOCAL5 168 168 168 168 168 0 # unix consensus -syscon log LOG_LOCAL6 176 176 176 176 176 0 # unix consensus -syscon log LOG_LOCAL7 184 184 184 184 184 0 # unix consensus -syscon log LOG_FACMASK 0x03f8 0x03f8 0x03f8 0x03f8 0x03f8 0 # unix consensus +syscon log LOG_LOCAL0 0x80 0x80 0x80 0x80 0x80 0x80 # unix consensus +syscon log LOG_LOCAL1 136 136 136 136 136 136 # unix consensus +syscon log LOG_LOCAL2 144 144 144 144 144 144 # unix consensus +syscon log LOG_LOCAL3 152 152 152 152 152 152 # unix consensus +syscon log LOG_LOCAL4 160 160 160 160 160 160 # unix consensus +syscon log LOG_LOCAL5 168 168 168 168 168 168 # unix consensus +syscon log LOG_LOCAL6 176 176 176 176 176 176 # unix consensus +syscon log LOG_LOCAL7 184 184 184 184 184 184 # unix consensus +syscon log LOG_FACMASK 0x03f8 0x03f8 0x03f8 0x03f8 0x03f8 0x03f8 # unix consensus syscon sg SG_DXFER_TO_FROM_DEV -4 0 0 0 0 0 syscon sg SG_DXFER_FROM_DEV -3 0 0 0 0 0 diff --git a/libc/sysv/consts/LOG_ALERT.S b/libc/sysv/consts/LOG_ALERT.S index a4a4a3733..e06f8d0fa 100644 --- a/libc/sysv/consts/LOG_ALERT.S +++ b/libc/sysv/consts/LOG_ALERT.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_ALERT,1,1,1,1,1,0 +.syscon log,LOG_ALERT,1,1,1,1,1,1 diff --git a/libc/sysv/consts/LOG_AUTH.S b/libc/sysv/consts/LOG_AUTH.S index e49b1c348..f810118f8 100644 --- a/libc/sysv/consts/LOG_AUTH.S +++ b/libc/sysv/consts/LOG_AUTH.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_AUTH,0x20,0x20,0x20,0x20,0x20,0 +.syscon log,LOG_AUTH,0x20,0x20,0x20,0x20,0x20,0x20 diff --git a/libc/sysv/consts/LOG_CONS.S b/libc/sysv/consts/LOG_CONS.S index 9c18366e5..ece48311f 100644 --- a/libc/sysv/consts/LOG_CONS.S +++ b/libc/sysv/consts/LOG_CONS.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_CONS,2,2,2,2,2,0 +.syscon log,LOG_CONS,2,2,2,2,2,2 diff --git a/libc/sysv/consts/LOG_CRIT.S b/libc/sysv/consts/LOG_CRIT.S index f788b32b0..d623e5551 100644 --- a/libc/sysv/consts/LOG_CRIT.S +++ b/libc/sysv/consts/LOG_CRIT.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_CRIT,2,2,2,2,2,0 +.syscon log,LOG_CRIT,2,2,2,2,2,2 diff --git a/libc/sysv/consts/LOG_CRON.S b/libc/sysv/consts/LOG_CRON.S index a7811f5c6..f392b84ca 100644 --- a/libc/sysv/consts/LOG_CRON.S +++ b/libc/sysv/consts/LOG_CRON.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_CRON,72,72,72,72,72,0 +.syscon log,LOG_CRON,72,72,72,72,72,72 diff --git a/libc/sysv/consts/LOG_DAEMON.S b/libc/sysv/consts/LOG_DAEMON.S index d6455e6ba..10f3772dd 100644 --- a/libc/sysv/consts/LOG_DAEMON.S +++ b/libc/sysv/consts/LOG_DAEMON.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_DAEMON,24,24,24,24,24,0 +.syscon log,LOG_DAEMON,24,24,24,24,24,24 diff --git a/libc/sysv/consts/LOG_DEBUG.S b/libc/sysv/consts/LOG_DEBUG.S index e7be4c545..3e39ee2b6 100644 --- a/libc/sysv/consts/LOG_DEBUG.S +++ b/libc/sysv/consts/LOG_DEBUG.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_DEBUG,7,7,7,7,7,0 +.syscon log,LOG_DEBUG,7,7,7,7,7,7 diff --git a/libc/sysv/consts/LOG_ERR.S b/libc/sysv/consts/LOG_ERR.S index cf04dcfd6..bf9507d94 100644 --- a/libc/sysv/consts/LOG_ERR.S +++ b/libc/sysv/consts/LOG_ERR.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_ERR,3,3,3,3,3,0 +.syscon log,LOG_ERR,3,3,3,3,3,3 diff --git a/libc/sysv/consts/LOG_FACMASK.S b/libc/sysv/consts/LOG_FACMASK.S index 93e626784..25d730624 100644 --- a/libc/sysv/consts/LOG_FACMASK.S +++ b/libc/sysv/consts/LOG_FACMASK.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_FACMASK,0x03f8,0x03f8,0x03f8,0x03f8,0x03f8,0 +.syscon log,LOG_FACMASK,0x03f8,0x03f8,0x03f8,0x03f8,0x03f8,0x03f8 diff --git a/libc/sysv/consts/LOG_INFO.S b/libc/sysv/consts/LOG_INFO.S index 01e728777..1eb6985af 100644 --- a/libc/sysv/consts/LOG_INFO.S +++ b/libc/sysv/consts/LOG_INFO.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_INFO,6,6,6,6,6,0 +.syscon log,LOG_INFO,6,6,6,6,6,6 diff --git a/libc/sysv/consts/LOG_LOCAL0.S b/libc/sysv/consts/LOG_LOCAL0.S index 55234ca24..fcd14530b 100644 --- a/libc/sysv/consts/LOG_LOCAL0.S +++ b/libc/sysv/consts/LOG_LOCAL0.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL0,0x80,0x80,0x80,0x80,0x80,0 +.syscon log,LOG_LOCAL0,0x80,0x80,0x80,0x80,0x80,0x80 diff --git a/libc/sysv/consts/LOG_LOCAL1.S b/libc/sysv/consts/LOG_LOCAL1.S index 85a14fe64..36ffdde59 100644 --- a/libc/sysv/consts/LOG_LOCAL1.S +++ b/libc/sysv/consts/LOG_LOCAL1.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL1,136,136,136,136,136,0 +.syscon log,LOG_LOCAL1,136,136,136,136,136,136 diff --git a/libc/sysv/consts/LOG_LOCAL2.S b/libc/sysv/consts/LOG_LOCAL2.S index 217f08023..1ddfe950c 100644 --- a/libc/sysv/consts/LOG_LOCAL2.S +++ b/libc/sysv/consts/LOG_LOCAL2.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL2,144,144,144,144,144,0 +.syscon log,LOG_LOCAL2,144,144,144,144,144,144 diff --git a/libc/sysv/consts/LOG_LOCAL3.S b/libc/sysv/consts/LOG_LOCAL3.S index ed6b8cea9..d8af1d662 100644 --- a/libc/sysv/consts/LOG_LOCAL3.S +++ b/libc/sysv/consts/LOG_LOCAL3.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL3,152,152,152,152,152,0 +.syscon log,LOG_LOCAL3,152,152,152,152,152,152 diff --git a/libc/sysv/consts/LOG_LOCAL4.S b/libc/sysv/consts/LOG_LOCAL4.S index dcd671a8d..6abccdf09 100644 --- a/libc/sysv/consts/LOG_LOCAL4.S +++ b/libc/sysv/consts/LOG_LOCAL4.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL4,160,160,160,160,160,0 +.syscon log,LOG_LOCAL4,160,160,160,160,160,160 diff --git a/libc/sysv/consts/LOG_LOCAL5.S b/libc/sysv/consts/LOG_LOCAL5.S index 92be42478..6062a680f 100644 --- a/libc/sysv/consts/LOG_LOCAL5.S +++ b/libc/sysv/consts/LOG_LOCAL5.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL5,168,168,168,168,168,0 +.syscon log,LOG_LOCAL5,168,168,168,168,168,168 diff --git a/libc/sysv/consts/LOG_LOCAL6.S b/libc/sysv/consts/LOG_LOCAL6.S index 5ce637a54..53c16ccac 100644 --- a/libc/sysv/consts/LOG_LOCAL6.S +++ b/libc/sysv/consts/LOG_LOCAL6.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL6,176,176,176,176,176,0 +.syscon log,LOG_LOCAL6,176,176,176,176,176,176 diff --git a/libc/sysv/consts/LOG_LOCAL7.S b/libc/sysv/consts/LOG_LOCAL7.S index 873c32177..8b0d73e2a 100644 --- a/libc/sysv/consts/LOG_LOCAL7.S +++ b/libc/sysv/consts/LOG_LOCAL7.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LOCAL7,184,184,184,184,184,0 +.syscon log,LOG_LOCAL7,184,184,184,184,184,184 diff --git a/libc/sysv/consts/LOG_LPR.S b/libc/sysv/consts/LOG_LPR.S index d0bc3c5da..0be5f536c 100644 --- a/libc/sysv/consts/LOG_LPR.S +++ b/libc/sysv/consts/LOG_LPR.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_LPR,48,48,48,48,48,0 +.syscon log,LOG_LPR,48,48,48,48,48,48 diff --git a/libc/sysv/consts/LOG_MAIL.S b/libc/sysv/consts/LOG_MAIL.S index a3ab000f9..e534e178f 100644 --- a/libc/sysv/consts/LOG_MAIL.S +++ b/libc/sysv/consts/LOG_MAIL.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_MAIL,0x10,0x10,0x10,0x10,0x10,0 +.syscon log,LOG_MAIL,0x10,0x10,0x10,0x10,0x10,0x10 diff --git a/libc/sysv/consts/LOG_NDELAY.S b/libc/sysv/consts/LOG_NDELAY.S index 36505a8bc..af158f72c 100644 --- a/libc/sysv/consts/LOG_NDELAY.S +++ b/libc/sysv/consts/LOG_NDELAY.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_NDELAY,8,8,8,8,8,0 +.syscon log,LOG_NDELAY,8,8,8,8,8,8 diff --git a/libc/sysv/consts/LOG_NEWS.S b/libc/sysv/consts/LOG_NEWS.S index 7d72d8e96..af6bc33e1 100644 --- a/libc/sysv/consts/LOG_NEWS.S +++ b/libc/sysv/consts/LOG_NEWS.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_NEWS,56,56,56,56,56,0 +.syscon log,LOG_NEWS,56,56,56,56,56,56 diff --git a/libc/sysv/consts/LOG_NFACILITIES.S b/libc/sysv/consts/LOG_NFACILITIES.S index 0d69a603a..924f57b8d 100644 --- a/libc/sysv/consts/LOG_NFACILITIES.S +++ b/libc/sysv/consts/LOG_NFACILITIES.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_NFACILITIES,24,25,24,24,24,0 +.syscon log,LOG_NFACILITIES,24,25,24,24,24,24 diff --git a/libc/sysv/consts/LOG_NOTICE.S b/libc/sysv/consts/LOG_NOTICE.S index de0fd3153..7164aa399 100644 --- a/libc/sysv/consts/LOG_NOTICE.S +++ b/libc/sysv/consts/LOG_NOTICE.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_NOTICE,5,5,5,5,5,0 +.syscon log,LOG_NOTICE,5,5,5,5,5,5 diff --git a/libc/sysv/consts/LOG_NOWAIT.S b/libc/sysv/consts/LOG_NOWAIT.S index cfe22f1fe..415b564d8 100644 --- a/libc/sysv/consts/LOG_NOWAIT.S +++ b/libc/sysv/consts/LOG_NOWAIT.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_NOWAIT,0x10,0x10,0x10,0x10,0x10,0 +.syscon log,LOG_NOWAIT,0x10,0x10,0x10,0x10,0x10,0x10 diff --git a/libc/sysv/consts/LOG_ODELAY.S b/libc/sysv/consts/LOG_ODELAY.S index acec796f7..5b97aa3b3 100644 --- a/libc/sysv/consts/LOG_ODELAY.S +++ b/libc/sysv/consts/LOG_ODELAY.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_ODELAY,4,4,4,4,4,0 +.syscon log,LOG_ODELAY,4,4,4,4,4,4 diff --git a/libc/sysv/consts/LOG_PERROR.S b/libc/sysv/consts/LOG_PERROR.S index 03229c0c6..a80b7f8df 100644 --- a/libc/sysv/consts/LOG_PERROR.S +++ b/libc/sysv/consts/LOG_PERROR.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_PERROR,0x20,0x20,0x20,0x20,0x20,0 +.syscon log,LOG_PERROR,0x20,0x20,0x20,0x20,0x20,0x20 diff --git a/libc/sysv/consts/LOG_PID.S b/libc/sysv/consts/LOG_PID.S index 54f06008d..7fff6d6b4 100644 --- a/libc/sysv/consts/LOG_PID.S +++ b/libc/sysv/consts/LOG_PID.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_PID,1,1,1,1,1,0 +.syscon log,LOG_PID,1,1,1,1,1,1 diff --git a/libc/sysv/consts/LOG_PRIMASK.S b/libc/sysv/consts/LOG_PRIMASK.S index 2ec561fba..bd140bfbe 100644 --- a/libc/sysv/consts/LOG_PRIMASK.S +++ b/libc/sysv/consts/LOG_PRIMASK.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_PRIMASK,7,7,7,7,7,0 +.syscon log,LOG_PRIMASK,7,7,7,7,7,7 diff --git a/libc/sysv/consts/LOG_SYSLOG.S b/libc/sysv/consts/LOG_SYSLOG.S index 35943f5b0..42420d291 100644 --- a/libc/sysv/consts/LOG_SYSLOG.S +++ b/libc/sysv/consts/LOG_SYSLOG.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_SYSLOG,40,40,40,40,40,0 +.syscon log,LOG_SYSLOG,40,40,40,40,40,40 diff --git a/libc/sysv/consts/LOG_USER.S b/libc/sysv/consts/LOG_USER.S index aaa208107..71538bc39 100644 --- a/libc/sysv/consts/LOG_USER.S +++ b/libc/sysv/consts/LOG_USER.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_USER,8,8,8,8,8,0 +.syscon log,LOG_USER,8,8,8,8,8,8 diff --git a/libc/sysv/consts/LOG_UUCP.S b/libc/sysv/consts/LOG_UUCP.S index 458a242d8..daa7b2fbe 100644 --- a/libc/sysv/consts/LOG_UUCP.S +++ b/libc/sysv/consts/LOG_UUCP.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_UUCP,0x40,0x40,0x40,0x40,0x40,0 +.syscon log,LOG_UUCP,0x40,0x40,0x40,0x40,0x40,40 diff --git a/libc/sysv/consts/LOG_WARNING.S b/libc/sysv/consts/LOG_WARNING.S index de8d3c15e..805b9731a 100644 --- a/libc/sysv/consts/LOG_WARNING.S +++ b/libc/sysv/consts/LOG_WARNING.S @@ -1,2 +1,2 @@ #include "libc/sysv/consts/syscon.internal.h" -.syscon log,LOG_WARNING,4,4,4,4,4,0 +.syscon log,LOG_WARNING,4,4,4,4,4,4 diff --git a/libc/sysv/consts/log.h b/libc/sysv/consts/log.h index 8a7d93ee5..838bfd293 100644 --- a/libc/sysv/consts/log.h +++ b/libc/sysv/consts/log.h @@ -40,6 +40,13 @@ #define LOG_UUCP SYMBOLIC(LOG_UUCP) #define LOG_WARNING SYMBOLIC(LOG_WARNING) +/* + * arguments to setlogmask. + */ +#define LOG_MASK(pri) (1 << (pri)) /* mask for one priority */ +#define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */ + + #if !(__ASSEMBLER__ + __LINKER__ + 0) COSMOPOLITAN_C_START_