X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=net%2Fnfs.c;h=7f2393f6064c62976ea3bf0c5f10a2ac22e7d443;hb=7c92c540754a0c3756d467a9b0695f2a40d1fe86;hp=54f56c4611cde41091465cc8fa37401912aa05b5;hpb=8bd07c9aaf4628931ab8da6eb0f83e517d9381a7;p=u-boot diff --git a/net/nfs.c b/net/nfs.c index 54f56c4611..7f2393f606 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -31,7 +31,11 @@ #define HASHES_PER_LINE 65 /* Number of "loading" hashes per line */ #define NFS_RETRY_COUNT 30 -#define NFS_TIMEOUT 2000UL +#ifndef CONFIG_NFS_TIMEOUT +# define NFS_TIMEOUT 2000UL +#else +# define NFS_TIMEOUT CONFIG_NFS_TIMEOUT +#endif static int fs_mounted; static unsigned long rpc_id; @@ -41,7 +45,7 @@ static int nfs_len; static char dirfh[NFS_FHSIZE]; /* file handle of directory */ static char filefh[NFS_FHSIZE]; /* file handle of kernel image */ -static int NfsDownloadState; +static enum net_loop_state nfs_download_state; static IPaddr_t NfsServerIP; static int NfsSrvMountPort; static int NfsSrvNfsPort; @@ -189,7 +193,7 @@ rpc_req(int rpc_prog, int rpc_proc, uint32_t *data, int datalen) pktlen = (char *)p + datalen*sizeof(uint32_t) - (char *)&pkt; - memcpy((char *)NetTxPacket + NetEthHdrSize() + IP_HDR_SIZE, + memcpy((char *)NetTxPacket + NetEthHdrSize() + IP_UDP_HDR_SIZE, (char *)&pkt, pktlen); if (rpc_prog == PROG_PORTMAP) @@ -613,10 +617,10 @@ NfsHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src, unsigned len) case STATE_UMOUNT_REQ: if (nfs_umountall_reply(pkt, len)) { puts("*** ERROR: Cannot umount\n"); - NetState = NETLOOP_FAIL; + net_set_state(NETLOOP_FAIL); } else { puts("\ndone\n"); - NetState = NfsDownloadState; + net_set_state(nfs_download_state); } break; @@ -660,7 +664,7 @@ NfsHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src, unsigned len) NfsSend(); } else { if (!rlen) - NfsDownloadState = NETLOOP_SUCCESS; + nfs_download_state = NETLOOP_SUCCESS; NfsState = STATE_UMOUNT_REQ; NfsSend(); } @@ -673,13 +677,13 @@ void NfsStart(void) { debug("%s\n", __func__); - NfsDownloadState = NETLOOP_FAIL; + nfs_download_state = NETLOOP_FAIL; NfsServerIP = NetServerIP; nfs_path = (char *)nfs_path_buff; if (nfs_path == NULL) { - NetState = NETLOOP_FAIL; + net_set_state(NETLOOP_FAIL); puts("*** ERROR: Fail allocate memory\n"); return; } @@ -735,7 +739,7 @@ NfsStart(void) "Loading: *\b", load_addr); NetSetTimeout(NFS_TIMEOUT, NfsTimeout); - NetSetHandler(NfsHandler); + net_set_udp_handler(NfsHandler); NfsTimeoutCount = 0; NfsState = STATE_PRCLOOKUP_PROG_MOUNT_REQ;