1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2018 Red Hat, Inc.
4 */
5
6#ifndef __NM_SETTING_ETHTOOL_H__
7#define __NM_SETTING_ETHTOOL_H__
8
9#if !defined(__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
10#error "Only <NetworkManager.h> can be included directly."
11#endif
12
13#include "nm-setting.h"
14
15G_BEGIN_DECLS
16
17NM_AVAILABLE_IN_1_20
18gboolean nm_ethtool_optname_is_feature(const char *optname);
19
20NM_AVAILABLE_IN_1_26
21gboolean nm_ethtool_optname_is_coalesce(const char *optname);
22
23NM_AVAILABLE_IN_1_26
24gboolean nm_ethtool_optname_is_ring(const char *optname);
25
26NM_AVAILABLE_IN_1_32
27gboolean nm_ethtool_optname_is_pause(const char *optname);
28
29NM_AVAILABLE_IN_1_46
30gboolean nm_ethtool_optname_is_channels(const char *optname);
31
32NM_AVAILABLE_IN_1_46
33gboolean nm_ethtool_optname_is_eee(const char *optname);
34
35/*****************************************************************************/
36
37#define NM_TYPE_SETTING_ETHTOOL (nm_setting_ethtool_get_type())
38#define NM_SETTING_ETHTOOL(obj) \
39 (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_SETTING_ETHTOOL, NMSettingEthtool))
40#define NM_SETTING_ETHTOOL_CLASS(klass) \
41 (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_SETTING_ETHTOOL, NMSettingEthtoolClass))
42#define NM_IS_SETTING_ETHTOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_SETTING_ETHTOOL))
43#define NM_IS_SETTING_ETHTOOL_CLASS(klass) \
44 (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_SETTING_ETHTOOL))
45#define NM_SETTING_ETHTOOL_GET_CLASS(obj) \
46 (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_SETTING_ETHTOOL, NMSettingEthtoolClass))
47
48#define NM_SETTING_ETHTOOL_SETTING_NAME "ethtool"
49
50/*****************************************************************************/
51
52typedef struct _NMSettingEthtoolClass NMSettingEthtoolClass;
53
54NM_AVAILABLE_IN_1_14
55GType nm_setting_ethtool_get_type(void);
56
57NM_AVAILABLE_IN_1_14
58NMSetting *nm_setting_ethtool_new(void);
59
60/*****************************************************************************/
61
62NM_AVAILABLE_IN_1_20
63NM_DEPRECATED_IN_1_26
64const char **nm_setting_ethtool_get_optnames(NMSettingEthtool *setting, guint *out_length);
65
66NM_AVAILABLE_IN_1_14
67NM_DEPRECATED_IN_1_26
68NMTernary nm_setting_ethtool_get_feature(NMSettingEthtool *setting, const char *optname);
69NM_AVAILABLE_IN_1_14
70NM_DEPRECATED_IN_1_26
71void
72nm_setting_ethtool_set_feature(NMSettingEthtool *setting, const char *optname, NMTernary value);
73NM_AVAILABLE_IN_1_14
74NM_DEPRECATED_IN_1_26
75void nm_setting_ethtool_clear_features(NMSettingEthtool *setting);
76
77G_END_DECLS
78
79#endif /* __NM_SETTING_ETHTOOL_H__ */
80

source code of include/libnm/nm-setting-ethtool.h