⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket.h

📁 GNU Hurd 源代码
💻 H
字号:
#ifndef _HACK_SOCKET_H_#define _HACK_SOCKET_H_#include <linux/types.h>#include <asm/system.h>#include <sys/socket.h>#include <sys/uio.h>#include <sys/ioctl.h>#include <limits.h>/* #define IP_MAX_MEMBERSHIPS 10 */#define IPTOS_LOWDELAY 0x10#define IPTOS_THROUGHPUT 0x08#define IPTOS_RELIABILITY 0x04#define SOPRI_INTERACTIVE 0#define SOPRI_NORMAL 1#define SOPRI_BACKGROUND 2#define SOL_IP IPPROTO_IP#define SOL_TCP IPPROTO_TCP#define SOL_RAW IPPROTO_RAW/* IP options */#define IP_PKTINFO	190#define IP_PKTOPTIONS	191#define IP_MTU_DISCOVER	192#define IP_RECVERR	193#define IP_RECVTTL	194#define	IP_RECVTOS	195#define IP_MTU		196#define IP_ROUTER_ALERT	197/* TCP options */#define TCP_NODELAY 1#define TCP_MAXSEG 2#define TCP_CORK 3#define SO_NO_CHECK 11#define SO_PRIORITY 12#define	SO_PASSCRED 190#define	SO_PEERCRED 191#define	SO_BSDCOMPAT 192/* Maximum queue length specifiable by listen.  */#ifndef SOMAXCONN#define SOMAXCONN	128#endif#ifndef CMSG_DATA#define msg_control	msg_accrights#define msg_controllen	msg_accrightslenstruct cmsghdr { int cmsg_garbage; };#define cmsg_len	cmsg_garbage#define cmsg_type	cmsg_garbage#define cmsg_level	cmsg_garbagestatic inline intput_cmsg(struct msghdr *msg, int level, int type, int len, void *data){ return 0; }#define CMSG_FIRSTHDR(msg)	(0)#define CMSG_NXTHDR(msg, cmsg)	(0)#define CMSG_DATA(cmsg)		(0)#define CMSG_ALIGN(size)	(0)#define CMSG_LEN(size) 		(0)#elsestatic inline intput_cmsg(struct msghdr *msg, int level, int type, int len, void *data){ return 0; }#endif#define MSG_NOSIGNAL	0#define MSG_ERRQUEUE	0/* There is no SOCK_PACKET, it is a bad bad thing.  This chicanery is   because the one use of it is a comparison against a `short int' value;   using a value outside the range of that type ensures that the comparison   will always fail, and in fact it and the dead code will get optimized   out entirely at compile time.  */#define SOCK_PACKET	((int)((uint32_t)USHRT_MAX) * 2)#define PF_PACKET	0#ifndef UIO_MAXIOV#define UIO_MAXIOV 4		/* 1 would do */#endifstruct ucred {  pid_t pid;  uid_t uid;  gid_t gid;};extern inline int		/* Does not modify IOV.  */memcpy_fromiovecend (unsigned char *kdata, struct iovec *iov,		     int offset, int len){  assert (offset + len <= iov->iov_len);  memcpy (kdata, iov->iov_base + offset, len);  return 0;}extern inline int		/* Modifies IOV to consume LEN bytes.  */memcpy_fromiovec (unsigned char *kdata, struct iovec *iov, int len){  assert (len <= iov->iov_len);  memcpy (kdata, iov->iov_base, len);  iov->iov_base += len;  iov->iov_len -= len;  return 0;}extern inline void		/* Modifies IOV to consume LEN bytes.  */memcpy_tokerneliovec (struct iovec *iov, unsigned char *kdata, int len){  assert (len <= iov->iov_len);  memcpy (iov->iov_base, kdata, len);  iov->iov_base += len;  iov->iov_len -= len;}extern inline int		/* Modifies IOV to consume LEN bytes.  */memcpy_toiovec (struct iovec *iov, unsigned char *kdata, int len){  memcpy_tokerneliovec (iov, kdata, len);  return 0;}extern int csum_partial_copy_fromiovecend(unsigned char *kdata,					  struct iovec *iov,					  int offset,					  unsigned int len, int *csump);static inline int move_addr_to_kernel(void *uaddr, int ulen, void *kaddr){  abort ();  return 0;}#if 0extern int verify_iovec(struct msghdr *m, struct iovec *iov, char *address, int mode);extern int move_addr_to_user(void *kaddr, int klen, void *uaddr, int *ulen);#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -