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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [net/] [lwip_tcpip/] [current/] [src/] [netif/] [ppp/] [vjbsdhdr.h] - Blame information for rev 786

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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