mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-25 12:00:31 +00:00
Improve socket option story
This commit is contained in:
parent
b14dddcc18
commit
bb7942e557
101 changed files with 208 additions and 567 deletions
|
@ -125,6 +125,8 @@ o/$(MODE)/libc/intrin/kerrnodocs.o: libc/intrin/kerrnodocs.S
|
|||
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -c $<
|
||||
o/$(MODE)/libc/intrin/kipoptnames.o: libc/intrin/kipoptnames.S
|
||||
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -c $<
|
||||
o/$(MODE)/libc/intrin/kipv6optnames.o: libc/intrin/kipv6optnames.S
|
||||
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -c $<
|
||||
o/$(MODE)/libc/intrin/kerrnonames.o: libc/intrin/kerrnonames.S
|
||||
@$(COMPILE) -AOBJECTIFY.S $(OBJECTIFY.S) $(OUTPUT_OPTION) -c $<
|
||||
o/$(MODE)/libc/intrin/kfcntlcmds.o: libc/intrin/kfcntlcmds.S
|
||||
|
|
|
@ -49,6 +49,14 @@ const char *_DescribeSockOptname(char buf[32], int l, int x) {
|
|||
*p++ = '_';
|
||||
*p = 0;
|
||||
ms = kIpOptnames;
|
||||
} else if (l == SOL_IPV6) {
|
||||
*p++ = 'I';
|
||||
*p++ = 'P';
|
||||
*p++ = 'V';
|
||||
*p++ = '6';
|
||||
*p++ = '_';
|
||||
*p = 0;
|
||||
ms = kIpv6Optnames;
|
||||
} else {
|
||||
ms = 0;
|
||||
}
|
||||
|
|
|
@ -32,9 +32,18 @@
|
|||
.underrun
|
||||
kIpOptnames:
|
||||
.e IP_TOS,"TOS" // int
|
||||
.e IP_MTU,"MTU" // int
|
||||
.e IP_TTL,"TTL" // int
|
||||
.e IP_MTU,"MTU" // int
|
||||
.e IP_HDRINCL,"HDRINCL" // bool32
|
||||
.e IP_OPTIONS,"OPTIONS"
|
||||
.e IP_RECVTTL,"RECVTTL"
|
||||
.e IP_ADD_MEMBERSHIP,"ADD_MEMBERSHIP"
|
||||
.e IP_DROP_MEMBERSHIP,"DROP_MEMBERSHIP"
|
||||
.e IP_MULTICAST_IF,"MULTICAST_IF"
|
||||
.e IP_MULTICAST_LOOP,"MULTICAST_LOOP"
|
||||
.e IP_MULTICAST_TTL,"MULTICAST_TTL"
|
||||
.e IP_PKTINFO,"PKTINFO"
|
||||
.e IP_RECVTOS,"RECVTOS"
|
||||
.long MAGNUM_TERMINATOR
|
||||
.endobj kIpOptnames,globl,hidden
|
||||
.overrun
|
||||
|
|
52
libc/intrin/kipv6optnames.S
Normal file
52
libc/intrin/kipv6optnames.S
Normal file
|
@ -0,0 +1,52 @@
|
|||
/*-*- mode:unix-assembly; indent-tabs-mode:t; tab-width:8; coding:utf-8 -*-│
|
||||
│ vi: set noet ft=asm ts=8 sw=8 fenc=utf-8 :vi │
|
||||
╞══════════════════════════════════════════════════════════════════════════════╡
|
||||
│ Copyright 2021 Justine Alexandra Roberts Tunney │
|
||||
│ │
|
||||
│ Permission to use, copy, modify, and/or distribute this software for │
|
||||
│ any purpose with or without fee is hereby granted, provided that the │
|
||||
│ above copyright notice and this permission notice appear in all copies. │
|
||||
│ │
|
||||
│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │
|
||||
│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │
|
||||
│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │
|
||||
│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │
|
||||
│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │
|
||||
│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │
|
||||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/fmt/magnumstrs.internal.h"
|
||||
#include "libc/macros.h"
|
||||
|
||||
.macro .e e s
|
||||
.long \e - kIpv6Optnames
|
||||
.long .L\@ - kIpv6Optnames
|
||||
.rodata.str1.1
|
||||
.L\@: .string "\s"
|
||||
.previous
|
||||
.endm
|
||||
|
||||
.section .rodata
|
||||
.balign 4
|
||||
.underrun
|
||||
kIpv6Optnames:
|
||||
.e IPV6_V6ONLY,"V6ONLY"
|
||||
.e IPV6_CHECKSUM,"CHECKSUM"
|
||||
.e IPV6_JOIN_GROUP,"JOIN_GROUP"
|
||||
.e IPV6_LEAVE_GROUP,"LEAVE_GROUP"
|
||||
.e IPV6_MULTICAST_HOPS,"MULTICAST_HOPS"
|
||||
.e IPV6_MULTICAST_IF,"MULTICAST_IF"
|
||||
.e IPV6_MULTICAST_LOOP,"MULTICAST_LOOP"
|
||||
.e IPV6_UNICAST_HOPS,"UNICAST_HOPS"
|
||||
.e IPV6_RECVTCLASS,"RECVTCLASS"
|
||||
.e IPV6_TCLASS,"TCLASS"
|
||||
.e IPV6_DONTFRAG,"DONTFRAG"
|
||||
.e IPV6_HOPLIMIT,"HOPLIMIT"
|
||||
.e IPV6_HOPOPTS,"HOPOPTS"
|
||||
.e IPV6_PKTINFO,"PKTINFO"
|
||||
.e IPV6_RECVRTHDR,"RECVRTHDR"
|
||||
.e IPV6_RTHDR,"RTHDR"
|
||||
.long MAGNUM_TERMINATOR
|
||||
.endobj kIpv6Optnames,globl,hidden
|
||||
.overrun
|
|
@ -47,6 +47,7 @@ kSockOptnames:
|
|||
.e SO_RCVLOWAT,"RCVLOWAT" // int
|
||||
.e SO_SNDLOWAT,"SNDLOWAT" // int
|
||||
.e SO_ERROR,"ERROR" // int
|
||||
.e SO_OOBINLINE,"OOBINLINE" // int
|
||||
.long MAGNUM_TERMINATOR
|
||||
.endobj kSockOptnames,globl,hidden
|
||||
.overrun
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue