~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/u-boot/net/bootp.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *      Copied from LiMon - BOOTP.
 
3
 *
 
4
 *      Copyright 1994, 1995, 2000 Neil Russell.
 
5
 *      (See License)
 
6
 *      Copyright 2000 Paolo Scaffardi
 
7
 */
 
8
 
 
9
#ifndef __BOOTP_H__
 
10
#define __BOOTP_H__
 
11
 
 
12
#ifndef __NET_H__
 
13
#include <net.h>
 
14
#endif /* __NET_H__ */
 
15
 
 
16
/**********************************************************************/
 
17
 
 
18
/*
 
19
 *      BOOTP header.
 
20
 */
 
21
#if defined(CONFIG_CMD_DHCP)
 
22
/* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */
 
23
#define OPT_FIELD_SIZE 312
 
24
#if defined(CONFIG_BOOTP_VENDOREX)
 
25
extern u8 *dhcp_vendorex_prep(u8 *e); /*rtn new e after add own opts. */
 
26
extern u8 *dhcp_vendorex_proc(u8 *e); /*rtn next e if mine,else NULL  */
 
27
#endif
 
28
#else
 
29
#define OPT_FIELD_SIZE 64
 
30
#endif
 
31
 
 
32
struct Bootp_t {
 
33
        uchar           bp_op;          /* Operation                    */
 
34
# define OP_BOOTREQUEST 1
 
35
# define OP_BOOTREPLY   2
 
36
        uchar           bp_htype;       /* Hardware type                */
 
37
# define HWT_ETHER      1
 
38
        uchar           bp_hlen;        /* Hardware address length      */
 
39
# define HWL_ETHER      6
 
40
        uchar           bp_hops;        /* Hop count (gateway thing)    */
 
41
        ulong           bp_id;          /* Transaction ID               */
 
42
        ushort          bp_secs;        /* Seconds since boot           */
 
43
        ushort          bp_spare1;      /* Alignment                    */
 
44
        IPaddr_t        bp_ciaddr;      /* Client IP address            */
 
45
        IPaddr_t        bp_yiaddr;      /* Your (client) IP address     */
 
46
        IPaddr_t        bp_siaddr;      /* Server IP address            */
 
47
        IPaddr_t        bp_giaddr;      /* Gateway IP address           */
 
48
        uchar           bp_chaddr[16];  /* Client hardware address      */
 
49
        char            bp_sname[64];   /* Server host name             */
 
50
        char            bp_file[128];   /* Boot file name               */
 
51
        char            bp_vend[OPT_FIELD_SIZE]; /* Vendor information  */
 
52
};
 
53
 
 
54
#define BOOTP_HDR_SIZE  sizeof(struct Bootp_t)
 
55
 
 
56
/**********************************************************************/
 
57
/*
 
58
 *      Global functions and variables.
 
59
 */
 
60
 
 
61
/* bootp.c */
 
62
extern ulong    BootpID;                /* ID of cur BOOTP request      */
 
63
extern char     BootFile[128];          /* Boot file name               */
 
64
extern int      BootpTry;
 
65
 
 
66
 
 
67
/* Send a BOOTP request */
 
68
extern void BootpRequest(void);
 
69
 
 
70
/****************** DHCP Support *********************/
 
71
extern void DhcpRequest(void);
 
72
 
 
73
/* DHCP States */
 
74
typedef enum { INIT,
 
75
               INIT_REBOOT,
 
76
               REBOOTING,
 
77
               SELECTING,
 
78
               REQUESTING,
 
79
               REBINDING,
 
80
               BOUND,
 
81
               RENEWING } dhcp_state_t;
 
82
 
 
83
#define DHCP_DISCOVER 1
 
84
#define DHCP_OFFER    2
 
85
#define DHCP_REQUEST  3
 
86
#define DHCP_DECLINE  4
 
87
#define DHCP_ACK      5
 
88
#define DHCP_NAK      6
 
89
#define DHCP_RELEASE  7
 
90
 
 
91
#define SELECT_TIMEOUT 3000UL   /* Milliseconds to wait for offers */
 
92
 
 
93
/**********************************************************************/
 
94
 
 
95
#endif /* __BOOTP_H__ */