mirror of https://gitee.com/openkylin/qemu.git
This pull request includes:
- fixes for some comments - netlink update and fix - rework/cleanup fo socket.h, including fixes for SPARC part. -----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJbB8ZVAAoJEPMMOL0/L74892gP/A270Fpmk2ozkvbqHzkZi0Lm Dr9LQ/xEcBFs03CK9+l8rJMyEJHZ/fo+K+qu7HiZRE2GY5pwSyehGw4iNq39kx6X hTNOdlDTLKXG4PVgfoOEq5hZsGCdidO68vIr30HmaqlCrm162C+YeAiAeN+a48MP ifzwR9S3wjx4r+oucLPzviwj1L7hqf7OUl+hwTQI5yzafOLDSSu+kCm2Ce48pETc CCtytC90u54dGCVUl1w+MStROLaTEuOp0DM6D01Bra17ITziBOccrZ8A/C23YDyl GpZjeAvNC5cRiuIcXuixX1ap86wIhiZUX2dTHjswX6JcIYBOluHCDoAwp1+azZwi Hw64O8w/y/45J3wB0tSf6xb8XANXNaFvRCtk6vU5+Wf5E4KnFqM9xljC+9Mw/AFs 5XV2n9HnqlwKlmEOqJZE86x7TDYhyOT5yVF8pZwBlqxRx5vBcmnBDlm8za+sfHR0 FRhqE39LX25N57KBAlHiMfd0GCarp5iShM5dsmg6M6F6RmGYI7CsuVsz5ALiBAmg bIdzBMcNKQwrgrV74AaU0UDYcw4FA07Dqq0lOMQ2VsYmthggeADjDIPpjAVy1Pex sUArNkv7b1NQ4ClozJuq9dQrUH3kXwwK38FEgXSIBjnSXDyVXTTzf4ja0Uqgr4kc XnecS6AtL5WcnbE8GiRW =Sydo -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-2.13-pull-request' into staging This pull request includes: - fixes for some comments - netlink update and fix - rework/cleanup fo socket.h, including fixes for SPARC part. # gpg: Signature made Fri 25 May 2018 09:16:21 BST # gpg: using RSA key F30C38BD3F2FBE3C # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" # gpg: aka "Laurent Vivier <laurent@vivier.eu>" # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/linux-user-for-2.13-pull-request: gdbstub: Clarify what gdb_handlesig() is doing linux-user: define TARGET_SO_REUSEPORT linux-user: copy sparc/sockbits.h definitions from linux linux-user: update ARCH_HAS_SOCKET_TYPES use linux-user: move ppc socket.h definitions to ppc/sockbits.h linux-user: move socket.h generic definitions to generic/sockbits.h linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h linux-user: move alpha socket.h definitions to alpha/sockbits.h linux-user: move mips socket.h definitions to mips/sockbits.h linux-user: Fix payload size logic in host_to_target_cmsg() linux-user: update comments to point to tcg_exec_init() linux-user: update netlink emulation linux-user: Assert on bad type in thunk_type_align() and thunk_type_size() Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
5a5c383b13
|
@ -898,9 +898,10 @@ int main(int argc, char **argv)
|
|||
cpu_model = "any";
|
||||
#endif
|
||||
}
|
||||
|
||||
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
||||
tcg_exec_init(0);
|
||||
/* NOTE: we need to init the CPU at this stage to get
|
||||
qemu_host_page_size */
|
||||
|
||||
cpu_type = parse_cpu_model(cpu_model);
|
||||
cpu = cpu_create(cpu_type);
|
||||
env = cpu->env_ptr;
|
||||
|
@ -917,7 +918,7 @@ int main(int argc, char **argv)
|
|||
envlist_free(envlist);
|
||||
|
||||
/*
|
||||
* Now that page sizes are configured in cpu_init() we can do
|
||||
* Now that page sizes are configured in tcg_exec_init() we can do
|
||||
* proper page alignment for guest_base.
|
||||
*/
|
||||
guest_base = HOST_PAGE_ALIGN(guest_base);
|
||||
|
|
|
@ -1558,6 +1558,12 @@ void gdb_do_syscallv(gdb_syscall_complete_cb cb, const char *fmt, va_list va)
|
|||
*p = 0;
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
put_packet(s, s->syscall_buf);
|
||||
/* Return control to gdb for it to process the syscall request.
|
||||
* Since the protocol requires that gdb hands control back to us
|
||||
* using a "here are the results" F packet, we don't need to check
|
||||
* gdb_handlesig's return value (which is the signal to deliver if
|
||||
* execution was resumed via a continue packet).
|
||||
*/
|
||||
gdb_handlesig(s->c_cpu, 0);
|
||||
#else
|
||||
/* In this case wait to send the syscall packet until notification that
|
||||
|
|
|
@ -48,6 +48,21 @@ int use_gdb_syscalls(void);
|
|||
void gdb_set_stop_cpu(CPUState *cpu);
|
||||
void gdb_exit(CPUArchState *, int);
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
/**
|
||||
* gdb_handlesig: yield control to gdb
|
||||
* @cpu: CPU
|
||||
* @sig: if non-zero, the signal number which caused us to stop
|
||||
*
|
||||
* This function yields control to gdb, when a user-mode-only target
|
||||
* needs to stop execution. If @sig is non-zero, then we will send a
|
||||
* stop packet to tell gdb that we have stopped because of this signal.
|
||||
*
|
||||
* This function will block (handling protocol requests from gdb)
|
||||
* until gdb tells us to continue target execution. When it does
|
||||
* return, the return value is a signal to deliver to the target,
|
||||
* or 0 if no signal should be delivered, ie the signal that caused
|
||||
* us to stop should be ignored.
|
||||
*/
|
||||
int gdb_handlesig(CPUState *, int);
|
||||
void gdb_signalled(CPUArchState *, int);
|
||||
void gdbserver_fork(CPUState *);
|
||||
|
|
|
@ -135,7 +135,7 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host)
|
|||
se = struct_entries + type_ptr[1];
|
||||
return se->size[is_host];
|
||||
default:
|
||||
return -1;
|
||||
g_assert_not_reached();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -185,7 +185,7 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host)
|
|||
se = struct_entries + type_ptr[1];
|
||||
return se->align[is_host];
|
||||
default:
|
||||
return -1;
|
||||
g_assert_not_reached();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef ALPHA_SOCKBITS_H
|
||||
#define ALPHA_SOCKBITS_H
|
||||
|
||||
/* For setsockopt(2) */
|
||||
#define TARGET_SOL_SOCKET 0xffff
|
||||
|
||||
#define TARGET_SO_DEBUG 0x0001
|
||||
#define TARGET_SO_REUSEADDR 0x0004
|
||||
#define TARGET_SO_KEEPALIVE 0x0008
|
||||
#define TARGET_SO_DONTROUTE 0x0010
|
||||
#define TARGET_SO_BROADCAST 0x0020
|
||||
#define TARGET_SO_LINGER 0x0080
|
||||
#define TARGET_SO_OOBINLINE 0x0100
|
||||
#define TARGET_SO_REUSEPORT 0x0200
|
||||
|
||||
#define TARGET_SO_TYPE 0x1008
|
||||
#define TARGET_SO_ERROR 0x1007
|
||||
#define TARGET_SO_SNDBUF 0x1001
|
||||
#define TARGET_SO_RCVBUF 0x1002
|
||||
#define TARGET_SO_SNDBUFFORCE 0x100a
|
||||
#define TARGET_SO_RCVBUFFORCE 0x100b
|
||||
#define TARGET_SO_RCVLOWAT 0x1010
|
||||
#define TARGET_SO_SNDLOWAT 0x1011
|
||||
#define TARGET_SO_RCVTIMEO 0x1012
|
||||
#define TARGET_SO_SNDTIMEO 0x1013
|
||||
#define TARGET_SO_ACCEPTCONN 0x1014
|
||||
#define TARGET_SO_PROTOCOL 0x1028
|
||||
#define TARGET_SO_DOMAIN 0x1029
|
||||
|
||||
/* linux-specific, might as well be the same as on i386 */
|
||||
#define TARGET_SO_NO_CHECK 11
|
||||
#define TARGET_SO_PRIORITY 12
|
||||
#define TARGET_SO_BSDCOMPAT 14
|
||||
|
||||
#define TARGET_SO_PASSCRED 17
|
||||
#define TARGET_SO_PEERCRED 18
|
||||
#define TARGET_SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define TARGET_SO_ATTACH_FILTER 26
|
||||
#define TARGET_SO_DETACH_FILTER 27
|
||||
|
||||
#define TARGET_SO_PEERNAME 28
|
||||
#define TARGET_SO_TIMESTAMP 29
|
||||
#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
|
||||
|
||||
#define TARGET_SO_PEERSEC 30
|
||||
#define TARGET_SO_PASSSEC 34
|
||||
#define TARGET_SO_TIMESTAMPNS 35
|
||||
#define TARGET_SCM_TIMESTAMPNS TARGET_SO_TIMESTAMPNS
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define TARGET_SO_SECURITY_AUTHENTICATION 19
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 20
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 21
|
||||
|
||||
#define TARGET_SO_MARK 36
|
||||
|
||||
#define TARGET_SO_TIMESTAMPING 37
|
||||
#define TARGET_SCM_TIMESTAMPING TARGET_SO_TIMESTAMPING
|
||||
|
||||
#define TARGET_SO_RXQ_OVFL 40
|
||||
|
||||
#define TARGET_SO_WIFI_STATUS 41
|
||||
#define TARGET_SCM_WIFI_STATUS TARGET_SO_WIFI_STATUS
|
||||
#define TARGET_SO_PEEK_OFF 42
|
||||
|
||||
/* Instruct lower device to use last 4-bytes of skb data as FCS */
|
||||
#define TARGET_SO_NOFCS 43
|
||||
|
||||
/* TARGET_O_NONBLOCK clashes with the bits used for socket types. Therefore we
|
||||
* have to define SOCK_NONBLOCK to a different value here.
|
||||
*/
|
||||
#define TARGET_SOCK_NONBLOCK 0x40000000
|
||||
|
||||
#endif
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef GENERIC_SOCKBITS_H
|
||||
#define GENERIC_SOCKBITS_H
|
||||
|
||||
#define TARGET_SO_PASSSEC 34
|
||||
|
||||
/* For setsockopt(2) */
|
||||
#define TARGET_SOL_SOCKET 1
|
||||
|
||||
#define TARGET_SO_DEBUG 1
|
||||
#define TARGET_SO_REUSEADDR 2
|
||||
#define TARGET_SO_TYPE 3
|
||||
#define TARGET_SO_ERROR 4
|
||||
#define TARGET_SO_DONTROUTE 5
|
||||
#define TARGET_SO_BROADCAST 6
|
||||
#define TARGET_SO_SNDBUF 7
|
||||
#define TARGET_SO_RCVBUF 8
|
||||
#define TARGET_SO_SNDBUFFORCE 32
|
||||
#define TARGET_SO_RCVBUFFORCE 33
|
||||
#define TARGET_SO_KEEPALIVE 9
|
||||
#define TARGET_SO_OOBINLINE 10
|
||||
#define TARGET_SO_NO_CHECK 11
|
||||
#define TARGET_SO_PRIORITY 12
|
||||
#define TARGET_SO_LINGER 13
|
||||
#define TARGET_SO_BSDCOMPAT 14
|
||||
#define TARGET_SO_REUSEPORT 15
|
||||
#define TARGET_SO_PASSCRED 16
|
||||
#define TARGET_SO_PEERCRED 17
|
||||
#define TARGET_SO_RCVLOWAT 18
|
||||
#define TARGET_SO_SNDLOWAT 19
|
||||
#define TARGET_SO_RCVTIMEO 20
|
||||
#define TARGET_SO_SNDTIMEO 21
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define TARGET_SO_SECURITY_AUTHENTICATION 22
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
|
||||
|
||||
#define TARGET_SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define TARGET_SO_ATTACH_FILTER 26
|
||||
#define TARGET_SO_DETACH_FILTER 27
|
||||
|
||||
#define TARGET_SO_PEERNAME 28
|
||||
#define TARGET_SO_TIMESTAMP 29
|
||||
#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
|
||||
|
||||
#define TARGET_SO_ACCEPTCONN 30
|
||||
|
||||
#define TARGET_SO_PEERSEC 31
|
||||
#endif
|
|
@ -64,34 +64,7 @@
|
|||
|
||||
#define TARGET_SO_CNX_ADVICE 0x402E
|
||||
|
||||
/** sock_type - Socket types - default values
|
||||
*
|
||||
*
|
||||
* @SOCK_STREAM - stream (connection) socket
|
||||
* @SOCK_DGRAM - datagram (conn.less) socket
|
||||
* @SOCK_RAW - raw socket
|
||||
* @SOCK_RDM - reliably-delivered message
|
||||
* @SOCK_SEQPACKET - sequential packet socket
|
||||
* @SOCK_DCCP - Datagram Congestion Control Protocol socket
|
||||
* @SOCK_PACKET - linux specific way of getting packets at the dev level.
|
||||
* For writing rarp and other similar things on the user
|
||||
* level.
|
||||
* @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
|
||||
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
|
||||
/* TARGET_O_NONBLOCK clashes with the bits used for socket types. Therefore we
|
||||
* have to define SOCK_NONBLOCK to a different value here.
|
||||
*/
|
||||
enum sock_type {
|
||||
TARGET_SOCK_STREAM = 1,
|
||||
TARGET_SOCK_DGRAM = 2,
|
||||
TARGET_SOCK_RAW = 3,
|
||||
TARGET_SOCK_RDM = 4,
|
||||
TARGET_SOCK_SEQPACKET = 5,
|
||||
TARGET_SOCK_DCCP = 6,
|
||||
TARGET_SOCK_PACKET = 10,
|
||||
TARGET_SOCK_CLOEXEC = 010000000,
|
||||
TARGET_SOCK_NONBLOCK = 0x40000000,
|
||||
};
|
||||
|
||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
|
||||
|
||||
#define ARCH_HAS_SOCKET_TYPES 1
|
||||
#define TARGET_SOCK_NONBLOCK 0x40000000
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -671,9 +671,8 @@ int main(int argc, char **argv, char **envp)
|
|||
}
|
||||
cpu_type = parse_cpu_model(cpu_model);
|
||||
|
||||
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
||||
tcg_exec_init(0);
|
||||
/* NOTE: we need to init the CPU at this stage to get
|
||||
qemu_host_page_size */
|
||||
|
||||
cpu = cpu_create(cpu_type);
|
||||
env = cpu->env_ptr;
|
||||
|
@ -693,7 +692,7 @@ int main(int argc, char **argv, char **envp)
|
|||
envlist_free(envlist);
|
||||
|
||||
/*
|
||||
* Now that page sizes are configured in cpu_init() we can do
|
||||
* Now that page sizes are configured in tcg_exec_init() we can do
|
||||
* proper page alignment for guest_base.
|
||||
*/
|
||||
guest_base = HOST_PAGE_ALIGN(guest_base);
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1,110 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef MIPS_SOCKBITS_H
|
||||
#define MIPS_SOCKBITS_H
|
||||
/* MIPS special values for constants */
|
||||
|
||||
/*
|
||||
* For setsockopt(2)
|
||||
*
|
||||
* This defines are ABI conformant as far as Linux supports these ...
|
||||
*/
|
||||
#define TARGET_SOL_SOCKET 0xffff
|
||||
|
||||
#define TARGET_SO_DEBUG 0x0001 /* Record debugging information. */
|
||||
#define TARGET_SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */
|
||||
#define TARGET_SO_KEEPALIVE 0x0008 /* Keep connections alive and send
|
||||
SIGPIPE when they die. */
|
||||
#define TARGET_SO_DONTROUTE 0x0010 /* Don't do local routing. */
|
||||
#define TARGET_SO_BROADCAST 0x0020 /* Allow transmission of
|
||||
broadcast messages. */
|
||||
#define TARGET_SO_LINGER 0x0080 /* Block on close of a reliable
|
||||
* socket to transmit pending data.
|
||||
*/
|
||||
#define TARGET_SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band.
|
||||
*/
|
||||
#define TARGET_SO_REUSEPORT 0x0200
|
||||
|
||||
#define TARGET_SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */
|
||||
#define TARGET_SO_STYLE SO_TYPE /* Synonym */
|
||||
#define TARGET_SO_ERROR 0x1007 /* get error status and clear */
|
||||
#define TARGET_SO_SNDBUF 0x1001 /* Send buffer size. */
|
||||
#define TARGET_SO_RCVBUF 0x1002 /* Receive buffer. */
|
||||
#define TARGET_SO_SNDLOWAT 0x1003 /* send low-water mark */
|
||||
#define TARGET_SO_RCVLOWAT 0x1004 /* receive low-water mark */
|
||||
#define TARGET_SO_SNDTIMEO 0x1005 /* send timeout */
|
||||
#define TARGET_SO_RCVTIMEO 0x1006 /* receive timeout */
|
||||
#define TARGET_SO_ACCEPTCONN 0x1009
|
||||
|
||||
/* linux-specific, might as well be the same as on i386 */
|
||||
#define TARGET_SO_NO_CHECK 11
|
||||
#define TARGET_SO_PRIORITY 12
|
||||
#define TARGET_SO_BSDCOMPAT 14
|
||||
|
||||
#define TARGET_SO_PASSCRED 17
|
||||
#define TARGET_SO_PEERCRED 18
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define TARGET_SO_SECURITY_AUTHENTICATION 22
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
|
||||
|
||||
#define TARGET_SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define TARGET_SO_ATTACH_FILTER 26
|
||||
#define TARGET_SO_DETACH_FILTER 27
|
||||
|
||||
#define TARGET_SO_PEERNAME 28
|
||||
#define TARGET_SO_TIMESTAMP 29
|
||||
#define SCM_TIMESTAMP SO_TIMESTAMP
|
||||
|
||||
#define TARGET_SO_PEERSEC 30
|
||||
#define TARGET_SO_SNDBUFFORCE 31
|
||||
#define TARGET_SO_RCVBUFFORCE 33
|
||||
#define TARGET_SO_PASSSEC 34
|
||||
|
||||
/** sock_type - Socket types
|
||||
*
|
||||
* Please notice that for binary compat reasons MIPS has to
|
||||
* override the enum sock_type in include/linux/net.h, so
|
||||
* we define ARCH_HAS_SOCKET_TYPES here.
|
||||
*
|
||||
* @SOCK_DGRAM - datagram (conn.less) socket
|
||||
* @SOCK_STREAM - stream (connection) socket
|
||||
* @SOCK_RAW - raw socket
|
||||
* @SOCK_RDM - reliably-delivered message
|
||||
* @SOCK_SEQPACKET - sequential packet socket
|
||||
* @SOCK_DCCP - Datagram Congestion Control Protocol socket
|
||||
* @SOCK_PACKET - linux specific way of getting packets at the dev level.
|
||||
* For writing rarp and other similar things on the user
|
||||
* level.
|
||||
* @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
|
||||
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
|
||||
*/
|
||||
|
||||
#define TARGET_ARCH_HAS_SOCKET_TYPES 1
|
||||
|
||||
enum sock_type {
|
||||
TARGET_SOCK_DGRAM = 1,
|
||||
TARGET_SOCK_STREAM = 2,
|
||||
TARGET_SOCK_RAW = 3,
|
||||
TARGET_SOCK_RDM = 4,
|
||||
TARGET_SOCK_SEQPACKET = 5,
|
||||
TARGET_SOCK_DCCP = 6,
|
||||
TARGET_SOCK_PACKET = 10,
|
||||
};
|
||||
|
||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
|
||||
|
||||
/* Flags for socket, socketpair, paccept */
|
||||
#define TARGET_SOCK_CLOEXEC TARGET_O_CLOEXEC
|
||||
#define TARGET_SOCK_NONBLOCK TARGET_O_NONBLOCK
|
||||
|
||||
#endif
|
|
@ -0,0 +1 @@
|
|||
#include "../mips/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef PPC_SOCKBITS_H
|
||||
#define PPC_SOCKBITS_H
|
||||
|
||||
#include "../generic/sockbits.h"
|
||||
|
||||
#undef TARGET_SO_RCVLOWAT
|
||||
#define TARGET_SO_RCVLOWAT 16
|
||||
#undef TARGET_SO_SNDLOWAT
|
||||
#define TARGET_SO_SNDLOWAT 17
|
||||
#undef TARGET_SO_RCVTIMEO
|
||||
#define TARGET_SO_RCVTIMEO 18
|
||||
#undef TARGET_SO_SNDTIMEO
|
||||
#define TARGET_SO_SNDTIMEO 19
|
||||
#undef TARGET_SO_PASSCRED
|
||||
#define TARGET_SO_PASSCRED 20
|
||||
#undef TARGET_SO_PEERCRED
|
||||
#define TARGET_SO_PEERCRED 21
|
||||
|
||||
#endif
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -1,342 +1,37 @@
|
|||
#include "sockbits.h"
|
||||
|
||||
#if defined(TARGET_MIPS)
|
||||
/* MIPS special values for constants */
|
||||
#ifndef TARGET_ARCH_HAS_SOCKET_TYPES
|
||||
/** sock_type - Socket types - default values
|
||||
*
|
||||
*
|
||||
* @SOCK_STREAM - stream (connection) socket
|
||||
* @SOCK_DGRAM - datagram (conn.less) socket
|
||||
* @SOCK_RAW - raw socket
|
||||
* @SOCK_RDM - reliably-delivered message
|
||||
* @SOCK_SEQPACKET - sequential packet socket
|
||||
* @SOCK_DCCP - Datagram Congestion Control Protocol socket
|
||||
* @SOCK_PACKET - linux specific way of getting packets at the dev level.
|
||||
* For writing rarp and other similar things on the user
|
||||
* level.
|
||||
* @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
|
||||
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
|
||||
*/
|
||||
enum sock_type {
|
||||
TARGET_SOCK_STREAM = 1,
|
||||
TARGET_SOCK_DGRAM = 2,
|
||||
TARGET_SOCK_RAW = 3,
|
||||
TARGET_SOCK_RDM = 4,
|
||||
TARGET_SOCK_SEQPACKET = 5,
|
||||
TARGET_SOCK_DCCP = 6,
|
||||
TARGET_SOCK_PACKET = 10,
|
||||
};
|
||||
|
||||
/*
|
||||
* For setsockopt(2)
|
||||
*
|
||||
* This defines are ABI conformant as far as Linux supports these ...
|
||||
*/
|
||||
#define TARGET_SOL_SOCKET 0xffff
|
||||
|
||||
#define TARGET_SO_DEBUG 0x0001 /* Record debugging information. */
|
||||
#define TARGET_SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */
|
||||
#define TARGET_SO_KEEPALIVE 0x0008 /* Keep connections alive and send
|
||||
SIGPIPE when they die. */
|
||||
#define TARGET_SO_DONTROUTE 0x0010 /* Don't do local routing. */
|
||||
#define TARGET_SO_BROADCAST 0x0020 /* Allow transmission of
|
||||
broadcast messages. */
|
||||
#define TARGET_SO_LINGER 0x0080 /* Block on close of a reliable
|
||||
* socket to transmit pending data.
|
||||
*/
|
||||
#define TARGET_SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band.
|
||||
*/
|
||||
#if 0
|
||||
/* To add: Allow local address and port reuse. */
|
||||
#define TARGET_SO_REUSEPORT 0x0200
|
||||
#endif
|
||||
|
||||
#define TARGET_SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */
|
||||
#define TARGET_SO_STYLE SO_TYPE /* Synonym */
|
||||
#define TARGET_SO_ERROR 0x1007 /* get error status and clear */
|
||||
#define TARGET_SO_SNDBUF 0x1001 /* Send buffer size. */
|
||||
#define TARGET_SO_RCVBUF 0x1002 /* Receive buffer. */
|
||||
#define TARGET_SO_SNDLOWAT 0x1003 /* send low-water mark */
|
||||
#define TARGET_SO_RCVLOWAT 0x1004 /* receive low-water mark */
|
||||
#define TARGET_SO_SNDTIMEO 0x1005 /* send timeout */
|
||||
#define TARGET_SO_RCVTIMEO 0x1006 /* receive timeout */
|
||||
#define TARGET_SO_ACCEPTCONN 0x1009
|
||||
|
||||
/* linux-specific, might as well be the same as on i386 */
|
||||
#define TARGET_SO_NO_CHECK 11
|
||||
#define TARGET_SO_PRIORITY 12
|
||||
#define TARGET_SO_BSDCOMPAT 14
|
||||
|
||||
#define TARGET_SO_PASSCRED 17
|
||||
#define TARGET_SO_PEERCRED 18
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define TARGET_SO_SECURITY_AUTHENTICATION 22
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
|
||||
|
||||
#define TARGET_SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define TARGET_SO_ATTACH_FILTER 26
|
||||
#define TARGET_SO_DETACH_FILTER 27
|
||||
|
||||
#define TARGET_SO_PEERNAME 28
|
||||
#define TARGET_SO_TIMESTAMP 29
|
||||
#define SCM_TIMESTAMP SO_TIMESTAMP
|
||||
|
||||
#define TARGET_SO_PEERSEC 30
|
||||
#define TARGET_SO_SNDBUFFORCE 31
|
||||
#define TARGET_SO_RCVBUFFORCE 33
|
||||
#define TARGET_SO_PASSSEC 34
|
||||
|
||||
/** sock_type - Socket types
|
||||
*
|
||||
* Please notice that for binary compat reasons MIPS has to
|
||||
* override the enum sock_type in include/linux/net.h, so
|
||||
* we define ARCH_HAS_SOCKET_TYPES here.
|
||||
*
|
||||
* @SOCK_DGRAM - datagram (conn.less) socket
|
||||
* @SOCK_STREAM - stream (connection) socket
|
||||
* @SOCK_RAW - raw socket
|
||||
* @SOCK_RDM - reliably-delivered message
|
||||
* @SOCK_SEQPACKET - sequential packet socket
|
||||
* @SOCK_DCCP - Datagram Congestion Control Protocol socket
|
||||
* @SOCK_PACKET - linux specific way of getting packets at the dev level.
|
||||
* For writing rarp and other similar things on the user
|
||||
* level.
|
||||
* @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
|
||||
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
|
||||
*/
|
||||
|
||||
#define ARCH_HAS_SOCKET_TYPES 1
|
||||
|
||||
enum sock_type {
|
||||
TARGET_SOCK_DGRAM = 1,
|
||||
TARGET_SOCK_STREAM = 2,
|
||||
TARGET_SOCK_RAW = 3,
|
||||
TARGET_SOCK_RDM = 4,
|
||||
TARGET_SOCK_SEQPACKET = 5,
|
||||
TARGET_SOCK_DCCP = 6,
|
||||
TARGET_SOCK_PACKET = 10,
|
||||
TARGET_SOCK_CLOEXEC = 02000000,
|
||||
TARGET_SOCK_NONBLOCK = 0200,
|
||||
};
|
||||
|
||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
|
||||
|
||||
#elif defined(TARGET_ALPHA)
|
||||
|
||||
/* For setsockopt(2) */
|
||||
#define TARGET_SOL_SOCKET 0xffff
|
||||
|
||||
#define TARGET_SO_DEBUG 0x0001
|
||||
#define TARGET_SO_REUSEADDR 0x0004
|
||||
#define TARGET_SO_KEEPALIVE 0x0008
|
||||
#define TARGET_SO_DONTROUTE 0x0010
|
||||
#define TARGET_SO_BROADCAST 0x0020
|
||||
#define TARGET_SO_LINGER 0x0080
|
||||
#define TARGET_SO_OOBINLINE 0x0100
|
||||
/* To add :#define TARGET_SO_REUSEPORT 0x0200 */
|
||||
|
||||
#define TARGET_SO_TYPE 0x1008
|
||||
#define TARGET_SO_ERROR 0x1007
|
||||
#define TARGET_SO_SNDBUF 0x1001
|
||||
#define TARGET_SO_RCVBUF 0x1002
|
||||
#define TARGET_SO_SNDBUFFORCE 0x100a
|
||||
#define TARGET_SO_RCVBUFFORCE 0x100b
|
||||
#define TARGET_SO_RCVLOWAT 0x1010
|
||||
#define TARGET_SO_SNDLOWAT 0x1011
|
||||
#define TARGET_SO_RCVTIMEO 0x1012
|
||||
#define TARGET_SO_SNDTIMEO 0x1013
|
||||
#define TARGET_SO_ACCEPTCONN 0x1014
|
||||
#define TARGET_SO_PROTOCOL 0x1028
|
||||
#define TARGET_SO_DOMAIN 0x1029
|
||||
|
||||
/* linux-specific, might as well be the same as on i386 */
|
||||
#define TARGET_SO_NO_CHECK 11
|
||||
#define TARGET_SO_PRIORITY 12
|
||||
#define TARGET_SO_BSDCOMPAT 14
|
||||
|
||||
#define TARGET_SO_PASSCRED 17
|
||||
#define TARGET_SO_PEERCRED 18
|
||||
#define TARGET_SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define TARGET_SO_ATTACH_FILTER 26
|
||||
#define TARGET_SO_DETACH_FILTER 27
|
||||
|
||||
#define TARGET_SO_PEERNAME 28
|
||||
#define TARGET_SO_TIMESTAMP 29
|
||||
#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
|
||||
|
||||
#define TARGET_SO_PEERSEC 30
|
||||
#define TARGET_SO_PASSSEC 34
|
||||
#define TARGET_SO_TIMESTAMPNS 35
|
||||
#define TARGET_SCM_TIMESTAMPNS TARGET_SO_TIMESTAMPNS
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define TARGET_SO_SECURITY_AUTHENTICATION 19
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 20
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 21
|
||||
|
||||
#define TARGET_SO_MARK 36
|
||||
|
||||
#define TARGET_SO_TIMESTAMPING 37
|
||||
#define TARGET_SCM_TIMESTAMPING TARGET_SO_TIMESTAMPING
|
||||
|
||||
#define TARGET_SO_RXQ_OVFL 40
|
||||
|
||||
#define TARGET_SO_WIFI_STATUS 41
|
||||
#define TARGET_SCM_WIFI_STATUS TARGET_SO_WIFI_STATUS
|
||||
#define TARGET_SO_PEEK_OFF 42
|
||||
|
||||
/* Instruct lower device to use last 4-bytes of skb data as FCS */
|
||||
#define TARGET_SO_NOFCS 43
|
||||
|
||||
/** sock_type - Socket types
|
||||
*
|
||||
* Please notice that for binary compat reasons ALPHA has to
|
||||
* override the enum sock_type in include/linux/net.h, so
|
||||
* we define ARCH_HAS_SOCKET_TYPES here.
|
||||
*
|
||||
* @SOCK_DGRAM - datagram (conn.less) socket
|
||||
* @SOCK_STREAM - stream (connection) socket
|
||||
* @SOCK_RAW - raw socket
|
||||
* @SOCK_RDM - reliably-delivered message
|
||||
* @SOCK_SEQPACKET - sequential packet socket
|
||||
* @SOCK_DCCP - Datagram Congestion Control Protocol socket
|
||||
* @SOCK_PACKET - linux specific way of getting packets at the dev level.
|
||||
* For writing rarp and other similar things on the user
|
||||
* level.
|
||||
* @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
|
||||
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
|
||||
*/
|
||||
|
||||
#define ARCH_HAS_SOCKET_TYPES 1
|
||||
|
||||
enum sock_type {
|
||||
TARGET_SOCK_STREAM = 1,
|
||||
TARGET_SOCK_DGRAM = 2,
|
||||
TARGET_SOCK_RAW = 3,
|
||||
TARGET_SOCK_RDM = 4,
|
||||
TARGET_SOCK_SEQPACKET = 5,
|
||||
TARGET_SOCK_DCCP = 6,
|
||||
TARGET_SOCK_PACKET = 10,
|
||||
TARGET_SOCK_CLOEXEC = 010000000,
|
||||
TARGET_SOCK_NONBLOCK = 010000000000,
|
||||
};
|
||||
|
||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
|
||||
#elif defined(TARGET_HPPA)
|
||||
#include <hppa/sockbits.h>
|
||||
#else
|
||||
|
||||
#if defined(TARGET_SPARC)
|
||||
/** sock_type - Socket types
|
||||
*
|
||||
* Please notice that for binary compat reasons SPARC has to
|
||||
* override the enum sock_type in include/linux/net.h, so
|
||||
* we define ARCH_HAS_SOCKET_TYPES here.
|
||||
*
|
||||
* @SOCK_DGRAM - datagram (conn.less) socket
|
||||
* @SOCK_STREAM - stream (connection) socket
|
||||
* @SOCK_RAW - raw socket
|
||||
* @SOCK_RDM - reliably-delivered message
|
||||
* @SOCK_SEQPACKET - sequential packet socket
|
||||
* @SOCK_DCCP - Datagram Congestion Control Protocol socket
|
||||
* @SOCK_PACKET - linux specific way of getting packets at the dev level.
|
||||
* For writing rarp and other similar things on the user
|
||||
* level.
|
||||
* @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
|
||||
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
|
||||
*/
|
||||
|
||||
#define ARCH_HAS_SOCKET_TYPES 1
|
||||
|
||||
enum sock_type {
|
||||
TARGET_SOCK_STREAM = 1,
|
||||
TARGET_SOCK_DGRAM = 2,
|
||||
TARGET_SOCK_RAW = 3,
|
||||
TARGET_SOCK_RDM = 4,
|
||||
TARGET_SOCK_SEQPACKET = 5,
|
||||
TARGET_SOCK_DCCP = 6,
|
||||
TARGET_SOCK_PACKET = 10,
|
||||
TARGET_SOCK_CLOEXEC = 020000000,
|
||||
TARGET_SOCK_NONBLOCK = 040000,
|
||||
};
|
||||
|
||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
|
||||
|
||||
#define TARGET_SO_PASSSEC 31
|
||||
#else
|
||||
#define TARGET_SO_PASSSEC 34
|
||||
#endif
|
||||
|
||||
/* For setsockopt(2) */
|
||||
#define TARGET_SOL_SOCKET 1
|
||||
|
||||
#define TARGET_SO_DEBUG 1
|
||||
#define TARGET_SO_REUSEADDR 2
|
||||
#define TARGET_SO_TYPE 3
|
||||
#define TARGET_SO_ERROR 4
|
||||
#define TARGET_SO_DONTROUTE 5
|
||||
#define TARGET_SO_BROADCAST 6
|
||||
#define TARGET_SO_SNDBUF 7
|
||||
#define TARGET_SO_RCVBUF 8
|
||||
#define TARGET_SO_SNDBUFFORCE 32
|
||||
#define TARGET_SO_RCVBUFFORCE 33
|
||||
#define TARGET_SO_KEEPALIVE 9
|
||||
#define TARGET_SO_OOBINLINE 10
|
||||
#define TARGET_SO_NO_CHECK 11
|
||||
#define TARGET_SO_PRIORITY 12
|
||||
#define TARGET_SO_LINGER 13
|
||||
#define TARGET_SO_BSDCOMPAT 14
|
||||
/* To add :#define TARGET_SO_REUSEPORT 15 */
|
||||
#if defined(TARGET_PPC)
|
||||
#define TARGET_SO_RCVLOWAT 16
|
||||
#define TARGET_SO_SNDLOWAT 17
|
||||
#define TARGET_SO_RCVTIMEO 18
|
||||
#define TARGET_SO_SNDTIMEO 19
|
||||
#define TARGET_SO_PASSCRED 20
|
||||
#define TARGET_SO_PEERCRED 21
|
||||
#else
|
||||
#define TARGET_SO_PASSCRED 16
|
||||
#define TARGET_SO_PEERCRED 17
|
||||
#define TARGET_SO_RCVLOWAT 18
|
||||
#define TARGET_SO_SNDLOWAT 19
|
||||
#define TARGET_SO_RCVTIMEO 20
|
||||
#define TARGET_SO_SNDTIMEO 21
|
||||
#endif
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define TARGET_SO_SECURITY_AUTHENTICATION 22
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
|
||||
|
||||
#define TARGET_SO_BINDTODEVICE 25
|
||||
|
||||
/* Socket filtering */
|
||||
#define TARGET_SO_ATTACH_FILTER 26
|
||||
#define TARGET_SO_DETACH_FILTER 27
|
||||
|
||||
#define TARGET_SO_PEERNAME 28
|
||||
#define TARGET_SO_TIMESTAMP 29
|
||||
#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
|
||||
|
||||
#define TARGET_SO_ACCEPTCONN 30
|
||||
|
||||
#define TARGET_SO_PEERSEC 31
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef ARCH_HAS_SOCKET_TYPES
|
||||
/** sock_type - Socket types - default values
|
||||
*
|
||||
*
|
||||
* @SOCK_STREAM - stream (connection) socket
|
||||
* @SOCK_DGRAM - datagram (conn.less) socket
|
||||
* @SOCK_RAW - raw socket
|
||||
* @SOCK_RDM - reliably-delivered message
|
||||
* @SOCK_SEQPACKET - sequential packet socket
|
||||
* @SOCK_DCCP - Datagram Congestion Control Protocol socket
|
||||
* @SOCK_PACKET - linux specific way of getting packets at the dev level.
|
||||
* For writing rarp and other similar things on the user
|
||||
* level.
|
||||
* @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
|
||||
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
|
||||
*/
|
||||
enum sock_type {
|
||||
TARGET_SOCK_STREAM = 1,
|
||||
TARGET_SOCK_DGRAM = 2,
|
||||
TARGET_SOCK_RAW = 3,
|
||||
TARGET_SOCK_RDM = 4,
|
||||
TARGET_SOCK_SEQPACKET = 5,
|
||||
TARGET_SOCK_DCCP = 6,
|
||||
TARGET_SOCK_PACKET = 10,
|
||||
TARGET_SOCK_CLOEXEC = 02000000,
|
||||
TARGET_SOCK_NONBLOCK = 04000,
|
||||
};
|
||||
|
||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
|
||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
|
||||
|
||||
/* Flags for socket, socketpair, accept4 */
|
||||
#define TARGET_SOCK_CLOEXEC TARGET_O_CLOEXEC
|
||||
#ifndef TARGET_SOCK_NONBLOCK
|
||||
#define TARGET_SOCK_NONBLOCK TARGET_O_NONBLOCK
|
||||
#endif
|
||||
#endif /* TARGET_ARCH_HAS_SOCKET_TYPES */
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation, or (at your option) any
|
||||
* later version. See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef SPARC_SOCKBITS_H
|
||||
#define SPARC_SOCKBITS_H
|
||||
|
||||
/* For setsockopt(2) */
|
||||
#define TARGET_SOL_SOCKET 0xffff
|
||||
|
||||
#define TARGET_SO_DEBUG 0x0001
|
||||
#define TARGET_SO_PASSCRED 0x0002
|
||||
#define TARGET_SO_REUSEADDR 0x0004
|
||||
#define TARGET_SO_KEEPALIVE 0x0008
|
||||
#define TARGET_SO_DONTROUTE 0x0010
|
||||
#define TARGET_SO_BROADCAST 0x0020
|
||||
#define TARGET_SO_PEERCRED 0x0040
|
||||
#define TARGET_SO_LINGER 0x0080
|
||||
#define TARGET_SO_OOBINLINE 0x0100
|
||||
#define TARGET_SO_REUSEPORT 0x0200
|
||||
#define TARGET_SO_BSDCOMPAT 0x0400
|
||||
#define TARGET_SO_RCVLOWAT 0x0800
|
||||
#define TARGET_SO_SNDLOWAT 0x1000
|
||||
#define TARGET_SO_RCVTIMEO 0x2000
|
||||
#define TARGET_SO_SNDTIMEO 0x4000
|
||||
#define TARGET_SO_ACCEPTCONN 0x8000
|
||||
|
||||
#define TARGET_SO_SNDBUF 0x1001
|
||||
#define TARGET_SO_RCVBUF 0x1002
|
||||
#define TARGET_SO_SNDBUFFORCE 0x100a
|
||||
#define TARGET_SO_RCVBUFFORCE 0x100b
|
||||
#define TARGET_SO_ERROR 0x1007
|
||||
#define TARGET_SO_TYPE 0x1008
|
||||
#define TARGET_SO_PROTOCOL 0x1028
|
||||
#define TARGET_SO_DOMAIN 0x1029
|
||||
|
||||
/* Linux specific, keep the same. */
|
||||
#define TARGET_SO_NO_CHECK 0x000b
|
||||
#define TARGET_SO_PRIORITY 0x000c
|
||||
|
||||
#define TARGET_SO_BINDTODEVICE 0x000d
|
||||
|
||||
#define TARGET_SO_ATTACH_FILTER 0x001a
|
||||
#define TARGET_SO_DETACH_FILTER 0x001b
|
||||
#define TARGET_SO_GET_FILTER TARGET_SO_ATTACH_FILTER
|
||||
|
||||
#define TARGET_SO_PEERNAME 0x001c
|
||||
#define TARGET_SO_TIMESTAMP 0x001d
|
||||
#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
|
||||
|
||||
#define TARGET_SO_PEERSEC 0x001e
|
||||
#define TARGET_SO_PASSSEC 0x001f
|
||||
#define TARGET_SO_TIMESTAMPNS 0x0021
|
||||
#define TARGET_SCM_TIMESTAMPNS TARGET_SO_TIMESTAMPNS
|
||||
|
||||
#define TARGET_SO_MARK 0x0022
|
||||
|
||||
#define TARGET_SO_TIMESTAMPING 0x0023
|
||||
#define TARGET_SCM_TIMESTAMPING TARGET_SO_TIMESTAMPING
|
||||
|
||||
#define TARGET_SO_RXQ_OVFL 0x0024
|
||||
|
||||
#define TARGET_SO_WIFI_STATUS 0x0025
|
||||
#define TARGET_SCM_WIFI_STATUS TARGET_SO_WIFI_STATUS
|
||||
#define TARGET_SO_PEEK_OFF 0x0026
|
||||
|
||||
/* Instruct lower device to use last 4-bytes of skb data as FCS */
|
||||
#define TARGET_SO_NOFCS 0x0027
|
||||
|
||||
#define TARGET_SO_LOCK_FILTER 0x0028
|
||||
|
||||
#define TARGET_SO_SELECT_ERR_QUEUE 0x0029
|
||||
|
||||
#define TARGET_SO_BUSY_POLL 0x0030
|
||||
|
||||
#define TARGET_SO_MAX_PACING_RATE 0x0031
|
||||
|
||||
#define TARGET_SO_BPF_EXTENSIONS 0x0032
|
||||
|
||||
#define TARGET_SO_INCOMING_CPU 0x0033
|
||||
|
||||
#define TARGET_SO_ATTACH_BPF 0x0034
|
||||
#define TARGET_SO_DETACH_BPF TARGET_SO_DETACH_FILTER
|
||||
|
||||
#define TARGET_SO_ATTACH_REUSEPORT_CBPF 0x0035
|
||||
#define TARGET_SO_ATTACH_REUSEPORT_EBPF 0x0036
|
||||
|
||||
#define TARGET_SO_CNX_ADVICE 0x0037
|
||||
|
||||
#define TARGET_SCM_TIMESTAMPING_OPT_STATS 0x0038
|
||||
|
||||
#define TARGET_SO_MEMINFO 0x0039
|
||||
|
||||
#define TARGET_SO_INCOMING_NAPI_ID 0x003a
|
||||
|
||||
#define TARGET_SO_COOKIE 0x003b
|
||||
|
||||
#define TARGET_SCM_TIMESTAMPING_PKTINFO 0x003c
|
||||
|
||||
#define TARGET_SO_PEERGROUPS 0x003d
|
||||
|
||||
#define TARGET_SO_ZEROCOPY 0x003e
|
||||
|
||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||
#define TARGET_SO_SECURITY_AUTHENTICATION 0x5001
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
|
||||
#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 0x5004
|
||||
#endif
|
|
@ -0,0 +1 @@
|
|||
#include "../sparc/sockbits.h"
|
|
@ -405,6 +405,8 @@ enum {
|
|||
QEMU_IFLA_BR_PAD,
|
||||
QEMU_IFLA_BR_VLAN_STATS_ENABLED,
|
||||
QEMU_IFLA_BR_MCAST_STATS_ENABLED,
|
||||
QEMU_IFLA_BR_MCAST_IGMP_VERSION,
|
||||
QEMU_IFLA_BR_MCAST_MLD_VERSION,
|
||||
QEMU___IFLA_BR_MAX,
|
||||
};
|
||||
|
||||
|
@ -453,6 +455,12 @@ enum {
|
|||
QEMU_IFLA_GSO_MAX_SIZE,
|
||||
QEMU_IFLA_PAD,
|
||||
QEMU_IFLA_XDP,
|
||||
QEMU_IFLA_EVENT,
|
||||
QEMU_IFLA_NEW_NETNSID,
|
||||
QEMU_IFLA_IF_NETNSID,
|
||||
QEMU_IFLA_CARRIER_UP_COUNT,
|
||||
QEMU_IFLA_CARRIER_DOWN_COUNT,
|
||||
QEMU_IFLA_NEW_IFINDEX,
|
||||
QEMU___IFLA_MAX
|
||||
};
|
||||
|
||||
|
@ -484,6 +492,12 @@ enum {
|
|||
QEMU_IFLA_BRPORT_FLUSH,
|
||||
QEMU_IFLA_BRPORT_MULTICAST_ROUTER,
|
||||
QEMU_IFLA_BRPORT_PAD,
|
||||
QEMU_IFLA_BRPORT_MCAST_FLOOD,
|
||||
QEMU_IFLA_BRPORT_MCAST_TO_UCAST,
|
||||
QEMU_IFLA_BRPORT_VLAN_TUNNEL,
|
||||
QEMU_IFLA_BRPORT_BCAST_FLOOD,
|
||||
QEMU_IFLA_BRPORT_GROUP_FWD_MASK,
|
||||
QEMU_IFLA_BRPORT_NEIGH_SUPPRESS,
|
||||
QEMU___IFLA_BRPORT_MAX
|
||||
};
|
||||
|
||||
|
@ -516,6 +530,15 @@ enum {
|
|||
QEMU___IFLA_INET6_MAX
|
||||
};
|
||||
|
||||
enum {
|
||||
QEMU_IFLA_XDP_UNSPEC,
|
||||
QEMU_IFLA_XDP_FD,
|
||||
QEMU_IFLA_XDP_ATTACHED,
|
||||
QEMU_IFLA_XDP_FLAGS,
|
||||
QEMU_IFLA_XDP_PROG_ID,
|
||||
QEMU___IFLA_XDP_MAX,
|
||||
};
|
||||
|
||||
typedef abi_long (*TargetFdDataFunc)(void *, size_t);
|
||||
typedef abi_long (*TargetFdAddrFunc)(void *, abi_ulong, socklen_t);
|
||||
typedef struct TargetFdTrans {
|
||||
|
@ -1825,6 +1848,7 @@ static inline abi_long host_to_target_cmsg(struct target_msghdr *target_msgh,
|
|||
/* Payload types which need a different size of payload on
|
||||
* the target must adjust tgt_len here.
|
||||
*/
|
||||
tgt_len = len;
|
||||
switch (cmsg->cmsg_level) {
|
||||
case SOL_SOCKET:
|
||||
switch (cmsg->cmsg_type) {
|
||||
|
@ -1834,8 +1858,8 @@ static inline abi_long host_to_target_cmsg(struct target_msghdr *target_msgh,
|
|||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
tgt_len = len;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2182,6 +2206,10 @@ static abi_long host_to_target_data_bridge_nlattr(struct nlattr *nlattr,
|
|||
case QEMU_IFLA_BR_NF_CALL_IPTABLES:
|
||||
case QEMU_IFLA_BR_NF_CALL_IP6TABLES:
|
||||
case QEMU_IFLA_BR_NF_CALL_ARPTABLES:
|
||||
case QEMU_IFLA_BR_VLAN_STATS_ENABLED:
|
||||
case QEMU_IFLA_BR_MCAST_STATS_ENABLED:
|
||||
case QEMU_IFLA_BR_MCAST_IGMP_VERSION:
|
||||
case QEMU_IFLA_BR_MCAST_MLD_VERSION:
|
||||
break;
|
||||
/* uint16_t */
|
||||
case QEMU_IFLA_BR_PRIORITY:
|
||||
|
@ -2253,6 +2281,11 @@ static abi_long host_to_target_slave_data_bridge_nlattr(struct nlattr *nlattr,
|
|||
case QEMU_IFLA_BRPORT_TOPOLOGY_CHANGE_ACK:
|
||||
case QEMU_IFLA_BRPORT_CONFIG_PENDING:
|
||||
case QEMU_IFLA_BRPORT_MULTICAST_ROUTER:
|
||||
case QEMU_IFLA_BRPORT_MCAST_FLOOD:
|
||||
case QEMU_IFLA_BRPORT_MCAST_TO_UCAST:
|
||||
case QEMU_IFLA_BRPORT_VLAN_TUNNEL:
|
||||
case QEMU_IFLA_BRPORT_BCAST_FLOOD:
|
||||
case QEMU_IFLA_BRPORT_NEIGH_SUPPRESS:
|
||||
break;
|
||||
/* uint16_t */
|
||||
case QEMU_IFLA_BRPORT_PRIORITY:
|
||||
|
@ -2260,6 +2293,7 @@ static abi_long host_to_target_slave_data_bridge_nlattr(struct nlattr *nlattr,
|
|||
case QEMU_IFLA_BRPORT_DESIGNATED_COST:
|
||||
case QEMU_IFLA_BRPORT_ID:
|
||||
case QEMU_IFLA_BRPORT_NO:
|
||||
case QEMU_IFLA_BRPORT_GROUP_FWD_MASK:
|
||||
u16 = NLA_DATA(nlattr);
|
||||
*u16 = tswap16(*u16);
|
||||
break;
|
||||
|
@ -2434,6 +2468,27 @@ static abi_long host_to_target_data_spec_nlattr(struct nlattr *nlattr,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static abi_long host_to_target_data_xdp_nlattr(struct nlattr *nlattr,
|
||||
void *context)
|
||||
{
|
||||
uint32_t *u32;
|
||||
|
||||
switch (nlattr->nla_type) {
|
||||
/* uint8_t */
|
||||
case QEMU_IFLA_XDP_ATTACHED:
|
||||
break;
|
||||
/* uint32_t */
|
||||
case QEMU_IFLA_XDP_PROG_ID:
|
||||
u32 = NLA_DATA(nlattr);
|
||||
*u32 = tswap32(*u32);
|
||||
break;
|
||||
default:
|
||||
gemu_log("Unknown host XDP type: %d\n", nlattr->nla_type);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
|
||||
{
|
||||
uint32_t *u32;
|
||||
|
@ -2559,6 +2614,10 @@ static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
|
|||
return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
|
||||
NULL,
|
||||
host_to_target_data_spec_nlattr);
|
||||
case QEMU_IFLA_XDP:
|
||||
return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
|
||||
NULL,
|
||||
host_to_target_data_xdp_nlattr);
|
||||
default:
|
||||
gemu_log("Unknown host QEMU_IFLA type: %d\n", rtattr->rta_type);
|
||||
break;
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
|
@ -0,0 +1 @@
|
|||
#include "../generic/sockbits.h"
|
Loading…
Reference in New Issue