]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - net/bootp.h
TX6 Release 2013-04-22
[karo-tx-uboot.git] / net / bootp.h
index 882a060969c7f9554a0b40ca6ca8e44fd37fe033..a7117528a4f3c4ae299094912b6925d5ef1d305e 100644 (file)
@@ -10,7 +10,7 @@
 #define __BOOTP_H__
 
 #ifndef __NET_H__
-#include       <net.h>
+#include <net.h>
 #endif /* __NET_H__ */
 
 /**********************************************************************/
  *     BOOTP header.
  */
 #if defined(CONFIG_CMD_DHCP)
-#define OPT_SIZE 312   /* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */
+/* Minimum DHCP Options size per RFC2131 - results in 576 byte pkt */
+#define OPT_FIELD_SIZE 312
+#if defined(CONFIG_BOOTP_VENDOREX)
+extern u8 *dhcp_vendorex_prep(u8 *e); /*rtn new e after add own opts. */
+extern u8 *dhcp_vendorex_proc(u8 *e); /*rtn next e if mine,else NULL  */
+#endif
 #else
-#define OPT_SIZE 64
+#define OPT_FIELD_SIZE 64
 #endif
 
-typedef struct
-{
-       uchar           bp_op;          /* Operation                            */
+struct Bootp_t {
+       uchar           bp_op;          /* Operation                    */
 # define OP_BOOTREQUEST        1
 # define OP_BOOTREPLY  2
-       uchar           bp_htype;       /* Hardware type                        */
+       uchar           bp_htype;       /* Hardware type                */
 # define HWT_ETHER     1
-       uchar           bp_hlen;        /* Hardware address length              */
+       uchar           bp_hlen;        /* Hardware address length      */
 # define HWL_ETHER     6
-       uchar           bp_hops;        /* Hop count (gateway thing)            */
-       ulong           bp_id;          /* Transaction ID                       */
-       ushort          bp_secs;        /* Seconds since boot                   */
-       ushort          bp_spare1;      /* Alignment                            */
-       IPaddr_t        bp_ciaddr;      /* Client IP address                    */
-       IPaddr_t        bp_yiaddr;      /* Your (client) IP address             */
-       IPaddr_t        bp_siaddr;      /* Server IP address                    */
-       IPaddr_t        bp_giaddr;      /* Gateway IP address                   */
-       uchar           bp_chaddr[16];  /* Client hardware address              */
-       char            bp_sname[64];   /* Server host name                     */
-       char            bp_file[128];   /* Boot file name                       */
-       char            bp_vend[OPT_SIZE];      /* Vendor information                   */
-}      Bootp_t;
-
-#define BOOTP_HDR_SIZE sizeof (Bootp_t)
-#define BOOTP_SIZE     (ETHER_HDR_SIZE + IP_HDR_SIZE + BOOTP_HDR_SIZE)
+       uchar           bp_hops;        /* Hop count (gateway thing)    */
+       ulong           bp_id;          /* Transaction ID               */
+       ushort          bp_secs;        /* Seconds since boot           */
+       ushort          bp_spare1;      /* Alignment                    */
+       IPaddr_t        bp_ciaddr;      /* Client IP address            */
+       IPaddr_t        bp_yiaddr;      /* Your (client) IP address     */
+       IPaddr_t        bp_siaddr;      /* Server IP address            */
+       IPaddr_t        bp_giaddr;      /* Gateway IP address           */
+       uchar           bp_chaddr[16];  /* Client hardware address      */
+       char            bp_sname[64];   /* Server host name             */
+       char            bp_file[128];   /* Boot file name               */
+       char            bp_vend[OPT_FIELD_SIZE]; /* Vendor information  */
+};
+
+#define BOOTP_HDR_SIZE sizeof(struct Bootp_t)
 
 /**********************************************************************/
 /*
@@ -56,10 +59,12 @@ typedef struct
  */
 
 /* bootp.c */
+extern char    BootFile[128];          /* Boot file name               */
 extern int     BootpTry;
 
+
 /* Send a BOOTP request */
-extern void    BootpRequest (void);
+extern void BootpRequest(void);
 
 /****************** DHCP Support *********************/
 extern void DhcpRequest(void);