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";
|
cpu_model = "any";
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
||||||
tcg_exec_init(0);
|
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_type = parse_cpu_model(cpu_model);
|
||||||
cpu = cpu_create(cpu_type);
|
cpu = cpu_create(cpu_type);
|
||||||
env = cpu->env_ptr;
|
env = cpu->env_ptr;
|
||||||
@ -917,7 +918,7 @@ int main(int argc, char **argv)
|
|||||||
envlist_free(envlist);
|
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.
|
* proper page alignment for guest_base.
|
||||||
*/
|
*/
|
||||||
guest_base = HOST_PAGE_ALIGN(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;
|
*p = 0;
|
||||||
#ifdef CONFIG_USER_ONLY
|
#ifdef CONFIG_USER_ONLY
|
||||||
put_packet(s, s->syscall_buf);
|
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);
|
gdb_handlesig(s->c_cpu, 0);
|
||||||
#else
|
#else
|
||||||
/* In this case wait to send the syscall packet until notification that
|
/* 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_set_stop_cpu(CPUState *cpu);
|
||||||
void gdb_exit(CPUArchState *, int);
|
void gdb_exit(CPUArchState *, int);
|
||||||
#ifdef CONFIG_USER_ONLY
|
#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);
|
int gdb_handlesig(CPUState *, int);
|
||||||
void gdb_signalled(CPUArchState *, int);
|
void gdb_signalled(CPUArchState *, int);
|
||||||
void gdbserver_fork(CPUState *);
|
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];
|
se = struct_entries + type_ptr[1];
|
||||||
return se->size[is_host];
|
return se->size[is_host];
|
||||||
default:
|
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];
|
se = struct_entries + type_ptr[1];
|
||||||
return se->align[is_host];
|
return se->align[is_host];
|
||||||
default:
|
default:
|
||||||
return -1;
|
g_assert_not_reached();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
linux-user/aarch64/sockbits.h
Normal file
1
linux-user/aarch64/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
83
linux-user/alpha/sockbits.h
Normal file
83
linux-user/alpha/sockbits.h
Normal file
@ -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
|
1
linux-user/arm/sockbits.h
Normal file
1
linux-user/arm/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
1
linux-user/cris/sockbits.h
Normal file
1
linux-user/cris/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
58
linux-user/generic/sockbits.h
Normal file
58
linux-user/generic/sockbits.h
Normal file
@ -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
|
#define TARGET_SO_CNX_ADVICE 0x402E
|
||||||
|
|
||||||
/** sock_type - Socket types - default values
|
/* TARGET_O_NONBLOCK clashes with the bits used for socket types. Therefore we
|
||||||
*
|
* have to define SOCK_NONBLOCK to a different value here.
|
||||||
*
|
|
||||||
* @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 {
|
#define TARGET_SOCK_NONBLOCK 0x40000000
|
||||||
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
|
|
||||||
|
1
linux-user/i386/sockbits.h
Normal file
1
linux-user/i386/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
1
linux-user/m68k/sockbits.h
Normal file
1
linux-user/m68k/sockbits.h
Normal file
@ -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);
|
cpu_type = parse_cpu_model(cpu_model);
|
||||||
|
|
||||||
|
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
||||||
tcg_exec_init(0);
|
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);
|
cpu = cpu_create(cpu_type);
|
||||||
env = cpu->env_ptr;
|
env = cpu->env_ptr;
|
||||||
@ -693,7 +692,7 @@ int main(int argc, char **argv, char **envp)
|
|||||||
envlist_free(envlist);
|
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.
|
* proper page alignment for guest_base.
|
||||||
*/
|
*/
|
||||||
guest_base = HOST_PAGE_ALIGN(guest_base);
|
guest_base = HOST_PAGE_ALIGN(guest_base);
|
||||||
|
1
linux-user/microblaze/sockbits.h
Normal file
1
linux-user/microblaze/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
110
linux-user/mips/sockbits.h
Normal file
110
linux-user/mips/sockbits.h
Normal file
@ -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
|
1
linux-user/mips64/sockbits.h
Normal file
1
linux-user/mips64/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../mips/sockbits.h"
|
1
linux-user/nios2/sockbits.h
Normal file
1
linux-user/nios2/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
1
linux-user/openrisc/sockbits.h
Normal file
1
linux-user/openrisc/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
26
linux-user/ppc/sockbits.h
Normal file
26
linux-user/ppc/sockbits.h
Normal file
@ -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
|
1
linux-user/riscv/sockbits.h
Normal file
1
linux-user/riscv/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
1
linux-user/s390x/sockbits.h
Normal file
1
linux-user/s390x/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
1
linux-user/sh4/sockbits.h
Normal file
1
linux-user/sh4/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
@ -1,314 +1,6 @@
|
|||||||
|
#include "sockbits.h"
|
||||||
|
|
||||||
#if defined(TARGET_MIPS)
|
#ifndef TARGET_ARCH_HAS_SOCKET_TYPES
|
||||||
/* 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.
|
|
||||||
*/
|
|
||||||
#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_type - Socket types - default values
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
@ -332,11 +24,14 @@
|
|||||||
TARGET_SOCK_SEQPACKET = 5,
|
TARGET_SOCK_SEQPACKET = 5,
|
||||||
TARGET_SOCK_DCCP = 6,
|
TARGET_SOCK_DCCP = 6,
|
||||||
TARGET_SOCK_PACKET = 10,
|
TARGET_SOCK_PACKET = 10,
|
||||||
TARGET_SOCK_CLOEXEC = 02000000,
|
|
||||||
TARGET_SOCK_NONBLOCK = 04000,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
|
||||||
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-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
|
||||||
|
#endif /* TARGET_ARCH_HAS_SOCKET_TYPES */
|
||||||
|
111
linux-user/sparc/sockbits.h
Normal file
111
linux-user/sparc/sockbits.h
Normal file
@ -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
|
1
linux-user/sparc64/sockbits.h
Normal file
1
linux-user/sparc64/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../sparc/sockbits.h"
|
@ -405,6 +405,8 @@ enum {
|
|||||||
QEMU_IFLA_BR_PAD,
|
QEMU_IFLA_BR_PAD,
|
||||||
QEMU_IFLA_BR_VLAN_STATS_ENABLED,
|
QEMU_IFLA_BR_VLAN_STATS_ENABLED,
|
||||||
QEMU_IFLA_BR_MCAST_STATS_ENABLED,
|
QEMU_IFLA_BR_MCAST_STATS_ENABLED,
|
||||||
|
QEMU_IFLA_BR_MCAST_IGMP_VERSION,
|
||||||
|
QEMU_IFLA_BR_MCAST_MLD_VERSION,
|
||||||
QEMU___IFLA_BR_MAX,
|
QEMU___IFLA_BR_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -453,6 +455,12 @@ enum {
|
|||||||
QEMU_IFLA_GSO_MAX_SIZE,
|
QEMU_IFLA_GSO_MAX_SIZE,
|
||||||
QEMU_IFLA_PAD,
|
QEMU_IFLA_PAD,
|
||||||
QEMU_IFLA_XDP,
|
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
|
QEMU___IFLA_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -484,6 +492,12 @@ enum {
|
|||||||
QEMU_IFLA_BRPORT_FLUSH,
|
QEMU_IFLA_BRPORT_FLUSH,
|
||||||
QEMU_IFLA_BRPORT_MULTICAST_ROUTER,
|
QEMU_IFLA_BRPORT_MULTICAST_ROUTER,
|
||||||
QEMU_IFLA_BRPORT_PAD,
|
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
|
QEMU___IFLA_BRPORT_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -516,6 +530,15 @@ enum {
|
|||||||
QEMU___IFLA_INET6_MAX
|
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 (*TargetFdDataFunc)(void *, size_t);
|
||||||
typedef abi_long (*TargetFdAddrFunc)(void *, abi_ulong, socklen_t);
|
typedef abi_long (*TargetFdAddrFunc)(void *, abi_ulong, socklen_t);
|
||||||
typedef struct TargetFdTrans {
|
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
|
/* Payload types which need a different size of payload on
|
||||||
* the target must adjust tgt_len here.
|
* the target must adjust tgt_len here.
|
||||||
*/
|
*/
|
||||||
|
tgt_len = len;
|
||||||
switch (cmsg->cmsg_level) {
|
switch (cmsg->cmsg_level) {
|
||||||
case SOL_SOCKET:
|
case SOL_SOCKET:
|
||||||
switch (cmsg->cmsg_type) {
|
switch (cmsg->cmsg_type) {
|
||||||
@ -1834,8 +1858,8 @@ static inline abi_long host_to_target_cmsg(struct target_msghdr *target_msgh,
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
tgt_len = len;
|
|
||||||
break;
|
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_IPTABLES:
|
||||||
case QEMU_IFLA_BR_NF_CALL_IP6TABLES:
|
case QEMU_IFLA_BR_NF_CALL_IP6TABLES:
|
||||||
case QEMU_IFLA_BR_NF_CALL_ARPTABLES:
|
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;
|
break;
|
||||||
/* uint16_t */
|
/* uint16_t */
|
||||||
case QEMU_IFLA_BR_PRIORITY:
|
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_TOPOLOGY_CHANGE_ACK:
|
||||||
case QEMU_IFLA_BRPORT_CONFIG_PENDING:
|
case QEMU_IFLA_BRPORT_CONFIG_PENDING:
|
||||||
case QEMU_IFLA_BRPORT_MULTICAST_ROUTER:
|
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;
|
break;
|
||||||
/* uint16_t */
|
/* uint16_t */
|
||||||
case QEMU_IFLA_BRPORT_PRIORITY:
|
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_DESIGNATED_COST:
|
||||||
case QEMU_IFLA_BRPORT_ID:
|
case QEMU_IFLA_BRPORT_ID:
|
||||||
case QEMU_IFLA_BRPORT_NO:
|
case QEMU_IFLA_BRPORT_NO:
|
||||||
|
case QEMU_IFLA_BRPORT_GROUP_FWD_MASK:
|
||||||
u16 = NLA_DATA(nlattr);
|
u16 = NLA_DATA(nlattr);
|
||||||
*u16 = tswap16(*u16);
|
*u16 = tswap16(*u16);
|
||||||
break;
|
break;
|
||||||
@ -2434,6 +2468,27 @@ static abi_long host_to_target_data_spec_nlattr(struct nlattr *nlattr,
|
|||||||
return 0;
|
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)
|
static abi_long host_to_target_data_link_rtattr(struct rtattr *rtattr)
|
||||||
{
|
{
|
||||||
uint32_t *u32;
|
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,
|
return host_to_target_for_each_nlattr(RTA_DATA(rtattr), rtattr->rta_len,
|
||||||
NULL,
|
NULL,
|
||||||
host_to_target_data_spec_nlattr);
|
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:
|
default:
|
||||||
gemu_log("Unknown host QEMU_IFLA type: %d\n", rtattr->rta_type);
|
gemu_log("Unknown host QEMU_IFLA type: %d\n", rtattr->rta_type);
|
||||||
break;
|
break;
|
||||||
|
1
linux-user/tilegx/sockbits.h
Normal file
1
linux-user/tilegx/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
1
linux-user/x86_64/sockbits.h
Normal file
1
linux-user/x86_64/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
1
linux-user/xtensa/sockbits.h
Normal file
1
linux-user/xtensa/sockbits.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "../generic/sockbits.h"
|
Loading…
x
Reference in New Issue
Block a user