linux/arch/mips/include/uapi/asm/socket.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2/*
   3 * This file is subject to the terms and conditions of the GNU General Public
   4 * License.  See the file "COPYING" in the main directory of this archive
   5 * for more details.
   6 *
   7 * Copyright (C) 1997, 1999, 2000, 2001 Ralf Baechle
   8 * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
   9 */
  10#ifndef _UAPI_ASM_SOCKET_H
  11#define _UAPI_ASM_SOCKET_H
  12
  13#include <linux/posix_types.h>
  14#include <asm/sockios.h>
  15
  16/*
  17 * For setsockopt(2)
  18 *
  19 * This defines are ABI conformant as far as Linux supports these ...
  20 */
  21#define SOL_SOCKET      0xffff
  22
  23#define SO_DEBUG        0x0001  /* Record debugging information.  */
  24#define SO_REUSEADDR    0x0004  /* Allow reuse of local addresses.  */
  25#define SO_KEEPALIVE    0x0008  /* Keep connections alive and send
  26                                   SIGPIPE when they die.  */
  27#define SO_DONTROUTE    0x0010  /* Don't do local routing.  */
  28#define SO_BROADCAST    0x0020  /* Allow transmission of
  29                                   broadcast messages.  */
  30#define SO_LINGER       0x0080  /* Block on close of a reliable
  31                                   socket to transmit pending data.  */
  32#define SO_OOBINLINE 0x0100     /* Receive out-of-band data in-band.  */
  33#define SO_REUSEPORT 0x0200     /* Allow local address and port reuse.  */
  34
  35#define SO_TYPE         0x1008  /* Compatible name for SO_STYLE.  */
  36#define SO_STYLE        SO_TYPE /* Synonym */
  37#define SO_ERROR        0x1007  /* get error status and clear */
  38#define SO_SNDBUF       0x1001  /* Send buffer size. */
  39#define SO_RCVBUF       0x1002  /* Receive buffer. */
  40#define SO_SNDLOWAT     0x1003  /* send low-water mark */
  41#define SO_RCVLOWAT     0x1004  /* receive low-water mark */
  42#define SO_SNDTIMEO_OLD 0x1005  /* send timeout */
  43#define SO_RCVTIMEO_OLD 0x1006  /* receive timeout */
  44#define SO_ACCEPTCONN   0x1009
  45#define SO_PROTOCOL     0x1028  /* protocol type */
  46#define SO_DOMAIN       0x1029  /* domain/socket family */
  47
  48/* linux-specific, might as well be the same as on i386 */
  49#define SO_NO_CHECK     11
  50#define SO_PRIORITY     12
  51#define SO_BSDCOMPAT    14
  52
  53#define SO_PASSCRED     17
  54#define SO_PEERCRED     18
  55
  56/* Security levels - as per NRL IPv6 - don't actually do anything */
  57#define SO_SECURITY_AUTHENTICATION              22
  58#define SO_SECURITY_ENCRYPTION_TRANSPORT        23
  59#define SO_SECURITY_ENCRYPTION_NETWORK          24
  60
  61#define SO_BINDTODEVICE         25
  62
  63/* Socket filtering */
  64#define SO_ATTACH_FILTER        26
  65#define SO_DETACH_FILTER        27
  66#define SO_GET_FILTER           SO_ATTACH_FILTER
  67
  68#define SO_PEERNAME             28
  69
  70#define SO_PEERSEC              30
  71#define SO_SNDBUFFORCE          31
  72#define SO_RCVBUFFORCE          33
  73#define SO_PASSSEC              34
  74
  75#define SO_MARK                 36
  76
  77#define SO_RXQ_OVFL             40
  78
  79#define SO_WIFI_STATUS          41
  80#define SCM_WIFI_STATUS         SO_WIFI_STATUS
  81#define SO_PEEK_OFF             42
  82
  83/* Instruct lower device to use last 4-bytes of skb data as FCS */
  84#define SO_NOFCS                43
  85
  86#define SO_LOCK_FILTER          44
  87
  88#define SO_SELECT_ERR_QUEUE     45
  89
  90#define SO_BUSY_POLL            46
  91
  92#define SO_MAX_PACING_RATE      47
  93
  94#define SO_BPF_EXTENSIONS       48
  95
  96#define SO_INCOMING_CPU         49
  97
  98#define SO_ATTACH_BPF           50
  99#define SO_DETACH_BPF           SO_DETACH_FILTER
 100
 101#define SO_ATTACH_REUSEPORT_CBPF        51
 102#define SO_ATTACH_REUSEPORT_EBPF        52
 103
 104#define SO_CNX_ADVICE           53
 105
 106#define SCM_TIMESTAMPING_OPT_STATS      54
 107
 108#define SO_MEMINFO              55
 109
 110#define SO_INCOMING_NAPI_ID     56
 111
 112#define SO_COOKIE               57
 113
 114#define SCM_TIMESTAMPING_PKTINFO        58
 115
 116#define SO_PEERGROUPS           59
 117
 118#define SO_ZEROCOPY             60
 119
 120#define SO_TXTIME               61
 121#define SCM_TXTIME              SO_TXTIME
 122
 123#define SO_BINDTOIFINDEX        62
 124
 125#define SO_TIMESTAMP_OLD        29
 126#define SO_TIMESTAMPNS_OLD      35
 127#define SO_TIMESTAMPING_OLD     37
 128
 129#define SO_TIMESTAMP_NEW        63
 130#define SO_TIMESTAMPNS_NEW      64
 131#define SO_TIMESTAMPING_NEW     65
 132
 133#define SO_RCVTIMEO_NEW         66
 134#define SO_SNDTIMEO_NEW         67
 135
 136#define SO_DETACH_REUSEPORT_BPF 68
 137
 138#define SO_PREFER_BUSY_POLL     69
 139#define SO_BUSY_POLL_BUDGET     70
 140
 141#define SO_NETNS_COOKIE         71
 142
 143#if !defined(__KERNEL__)
 144
 145#if __BITS_PER_LONG == 64
 146#define SO_TIMESTAMP            SO_TIMESTAMP_OLD
 147#define SO_TIMESTAMPNS          SO_TIMESTAMPNS_OLD
 148#define SO_TIMESTAMPING         SO_TIMESTAMPING_OLD
 149
 150#define SO_RCVTIMEO             SO_RCVTIMEO_OLD
 151#define SO_SNDTIMEO             SO_SNDTIMEO_OLD
 152#else
 153#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
 154#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW)
 155#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW)
 156
 157#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW)
 158#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW)
 159#endif
 160
 161#define SCM_TIMESTAMP           SO_TIMESTAMP
 162#define SCM_TIMESTAMPNS         SO_TIMESTAMPNS
 163#define SCM_TIMESTAMPING        SO_TIMESTAMPING
 164
 165#endif
 166
 167#endif /* _UAPI_ASM_SOCKET_H */
 168