📄 linux.h
字号:
/*** Special compatibility definitions for linux.**** On the linux platform, several IP-related structures have** different names. Also some of the structure fields have** other names, although the layout is (obviously) fixed.** Several constants are not defined in the standard files.**** @(#)linux.h e07@nikhef.nl (Eric Wassenaar) 960301*/#if defined(linux)#include <endian.h> /* to get the proper BYTE_ORDER */#if !defined(BYTE_ORDER) || (BYTE_ORDER != BIG_ENDIAN && \ BYTE_ORDER != LITTLE_ENDIAN && BYTE_ORDER != PDP_ENDIAN)error "Undefined or invalid BYTE_ORDER";#endif/* * Structure of an ip header, without options. */#define IPVERSION 4struct ip {#if (BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN) u_char ip_hl:4, /* header length */ ip_v:4; /* version */#else u_char ip_v:4, /* version */ ip_hl:4; /* header length */#endif u_char ip_tos; /* type of service */ short ip_len; /* total length */ u_short ip_id; /* identification */ short ip_off; /* fragment offset field */#define IP_DF 0x4000 /* dont fragment flag */#define IP_MF 0x2000 /* more fragments flag */ u_char ip_ttl; /* time to live */ u_char ip_p; /* protocol */ u_short ip_sum; /* checksum */ struct in_addr ip_src,ip_dst; /* source and dest address */};#define IP_MAXPACKET 65535 /* maximum packet size *//* * Structure of an icmp header. */struct icmp { u_char icmp_type; /* type of message, see below */ u_char icmp_code; /* type sub code */ u_short icmp_cksum; /* ones complement cksum of struct */ union { u_char ih_pptr; /* ICMP_PARAMPROB */ struct in_addr ih_gwaddr; /* ICMP_REDIRECT */ struct ih_idseq { n_short icd_id; n_short icd_seq; } ih_idseq; int ih_void; } icmp_hun;#define icmp_pptr icmp_hun.ih_pptr#define icmp_gwaddr icmp_hun.ih_gwaddr#define icmp_id icmp_hun.ih_idseq.icd_id#define icmp_seq icmp_hun.ih_idseq.icd_seq#define icmp_void icmp_hun.ih_void union { struct id_ts { n_time its_otime; n_time its_rtime; n_time its_ttime; } id_ts; struct id_ip { struct ip idi_ip; /* options and then 64 bits of data */ } id_ip; u_long id_mask; char id_data[1]; } icmp_dun;#define icmp_otime icmp_dun.id_ts.its_otime#define icmp_rtime icmp_dun.id_ts.its_rtime#define icmp_ttime icmp_dun.id_ts.its_ttime#define icmp_ip icmp_dun.id_ip.idi_ip#define icmp_mask icmp_dun.id_mask#define icmp_data icmp_dun.id_data};#define ICMP_MINLEN 8 /* abs minimum *//* * Definition of icmp type and code field values. */#define ICMP_ECHOREPLY 0 /* echo reply */#define ICMP_UNREACH 3 /* dest unreachable, codes: */#define ICMP_UNREACH_NET 0 /* bad net */#define ICMP_UNREACH_HOST 1 /* bad host */#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */#define ICMP_UNREACH_PORT 3 /* bad port */#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */#define ICMP_REDIRECT 5 /* shorter route, codes: */#define ICMP_REDIRECT_NET 0 /* for network */#define ICMP_REDIRECT_HOST 1 /* for host */#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */#define ICMP_ECHO 8 /* echo service */#define ICMP_TIMXCEED 11 /* time exceeded, code: */#define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */#define ICMP_TIMXCEED_REASS 1 /* ttl==0 in reass */#define ICMP_PARAMPROB 12 /* ip header bad */#define ICMP_TSTAMP 13 /* timestamp request */#define ICMP_TSTAMPREPLY 14 /* timestamp reply */#define ICMP_IREQ 15 /* information request */#define ICMP_IREQREPLY 16 /* information reply */#define ICMP_MASKREQ 17 /* address mask request */#define ICMP_MASKREPLY 18 /* address mask reply *//* * Definitions needed for the udp header structure. */#define uh_sport source#define uh_dport dest#define uh_ulen len#define uh_sum check#endif /* linux */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -