OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [Common/] [ethernet/] [lwIP/] [netif/] [ppp/] [vjbsdhdr.h] - Blame information for rev 606

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 606 jeremybenn
#ifndef VJBSDHDR_H
2
#define VJBSDHDR_H
3
 
4
#include "lwip/tcp.h"
5
 
6
 
7
/*
8
 * Structure of an internet header, naked of options.
9
 *
10
 * We declare ip_len and ip_off to be short, rather than u_short
11
 * pragmatically since otherwise unsigned comparisons can result
12
 * against negative integers quite easily, and fail in subtle ways.
13
 */
14
PACK_STRUCT_BEGIN
15
struct ip
16
{
17
#if defined(NO_CHAR_BITFIELDS)
18
        u_char ip_hl_v; /* bug in GCC for mips means the bitfield stuff will sometimes break - so we use a char for both and get round it with macro's instead... */
19
#else
20
#if BYTE_ORDER == LITTLE_ENDIAN
21
        unsigned ip_hl:4,                               /* header length */
22
                ip_v:4;                                         /* version */
23
#elif BYTE_ORDER == BIG_ENDIAN 
24
        unsigned ip_v:4,                                        /* version */
25
                ip_hl:4;                                        /* header length */
26
#else
27
        COMPLAIN - NO BYTE ORDER SELECTED!
28
#endif
29
#endif
30
        u_char  ip_tos;                                 /* type of service */
31
        u_short ip_len;                                 /* total length */
32
        u_short ip_id;                                  /* identification */
33
        u_short ip_off;                                 /* fragment offset field */
34
#define IP_DF 0x4000                            /* dont fragment flag */
35
#define IP_MF 0x2000                            /* more fragments flag */
36
#define IP_OFFMASK 0x1fff                       /* mask for fragmenting bits */
37
        u_char  ip_ttl;                                 /* time to live */
38
        u_char  ip_p;                                   /* protocol */
39
        u_short ip_sum;                                 /* checksum */
40
        struct  in_addr ip_src,ip_dst;  /* source and dest address */
41
};
42
PACK_STRUCT_END
43
 
44
typedef u32_t tcp_seq;
45
 
46
/*
47
 * TCP header.
48
 * Per RFC 793, September, 1981.
49
 */
50
PACK_STRUCT_BEGIN
51
struct tcphdr
52
{
53
        u_short th_sport;               /* source port */
54
        u_short th_dport;               /* destination port */
55
        tcp_seq th_seq;                 /* sequence number */
56
        tcp_seq th_ack;                 /* acknowledgement number */
57
#if defined(NO_CHAR_BITFIELDS)
58
        u_char th_x2_off;
59
#else
60
#if BYTE_ORDER == LITTLE_ENDIAN
61
        unsigned        th_x2:4,                /* (unused) */
62
                        th_off:4;               /* data offset */
63
#endif
64
#if BYTE_ORDER == BIG_ENDIAN 
65
        unsigned        th_off:4,               /* data offset */
66
                        th_x2:4;                /* (unused) */
67
#endif
68
#endif
69
        u_char  th_flags;
70
        u_short th_win;                 /* window */
71
        u_short th_sum;                 /* checksum */
72
        u_short th_urp;                 /* urgent pointer */
73
};
74
PACK_STRUCT_END
75
 
76
#endif /* VJBSDHDR_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.