Files
Linux_Drivers/u-boot-2021.10/net/wol.h
sam.xiang f8fc109960 [uboot] create uboot from github:
repo: https://github.com/u-boot/u-boot
	commit: d80bb749fab53da72c4a0e09b8c2d2aaa3103c91

Change-Id: Ie6434426e1ec15bc08bb1832798e371f3fd5fb29
2023-03-10 20:30:57 +08:00

66 lines
1.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* wol - Wake-on-LAN
*
* Supports both Wake-on-LAN packet types:
* - EtherType 0x0842 packets
* - UDP packets on ports 0, 7 and 9.
*
* Copyright 2018 Lothar Felten, lothar.felten@gmail.com
*/
#if defined(CONFIG_CMD_WOL)
#ifndef __WOL_H__
#define __WOL_H__
#include <net.h>
/**********************************************************************/
#define WOL_SYNC_BYTE 0xFF
#define WOL_SYNC_COUNT 6
#define WOL_MAC_REPETITIONS 16
#define WOL_DEFAULT_TIMEOUT 5000
#define WOL_PASSWORD_4B 4
#define WOL_PASSWORD_6B 6
/*
* Wake-on-LAN header
*/
struct wol_hdr {
u8 wol_sync[WOL_SYNC_COUNT]; /* sync bytes */
u8 wol_dest[WOL_MAC_REPETITIONS * ARP_HLEN]; /* 16x MAC */
u8 wol_passwd[0]; /* optional */
};
/*
* Initialize wol (beginning of netloop)
*/
void wol_start(void);
/*
* Check incoming Wake-on-LAN packet for:
* - sync bytes
* - sixteen copies of the target MAC address
*
* Optionally store the four or six byte password in the environment
* variable "wolpassword"
*
* @param ip IP header in the packet
* @param len Packet length
*/
void wol_receive(struct ip_udp_hdr *ip, unsigned int len);
/*
* Set the timeout for the reception of a Wake-on-LAN packet
*
* @param timeout in milliseconds
*/
void wol_set_timeout(ulong timeout);
/**********************************************************************/
#endif /* __WOL_H__ */
#endif