X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fudev%2Fnet%2Fethtool-util.h;h=690b1a65aa0e4392671aa9736a47aae1a2263710;hb=aedca89268ed4fd6be41e55a605f011033ad1fb5;hp=74bbada6edd81fb6c94647cc3115b00ec0355b00;hpb=a501033335ed402c8f7e86fe41a15531ba69abd7;p=elogind.git diff --git a/src/udev/net/ethtool-util.h b/src/udev/net/ethtool-util.h index 74bbada6e..690b1a65a 100644 --- a/src/udev/net/ethtool-util.h +++ b/src/udev/net/ethtool-util.h @@ -19,7 +19,38 @@ along with systemd; If not, see . ***/ +#pragma once + +#include + +/* we can't use DUPLEX_ prefix, as it + * clashes with */ +typedef enum Duplex { + DUP_FULL, + DUP_HALF, + _DUP_MAX, + _DUP_INVALID = -1 +} Duplex; + +typedef enum WakeOnLan { + WOL_PHY, + WOL_MAGIC, + WOL_OFF, + _WOL_MAX, + _WOL_INVALID = -1 +} WakeOnLan; + int ethtool_connect(int *ret); -int ethtool_set_speed(int fd, const char *ifname, const unsigned int speed, const char *duplex); -int ethtool_set_wol(int fd, const char *ifname, const char *wol); +int ethtool_get_driver(int *fd, const char *ifname, char **ret); +int ethtool_set_speed(int *fd, const char *ifname, unsigned int speed, Duplex duplex); +int ethtool_set_wol(int *fd, const char *ifname, WakeOnLan wol); + +const char *duplex_to_string(Duplex d) _const_; +Duplex duplex_from_string(const char *d) _pure_; + +const char *wol_to_string(WakeOnLan wol) _const_; +WakeOnLan wol_from_string(const char *wol) _pure_; + +int config_parse_duplex(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); +int config_parse_wol(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);