git: a3a76c3d9031 - main - IfAPI: Add capabilities2/capenable2 accessors
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 14 Feb 2023 15:36:21 UTC
The branch main has been updated by jhibbits:
URL: https://cgit.FreeBSD.org/src/commit/?id=a3a76c3d9031d5fa432145afc8493ebda97719ce
commit a3a76c3d9031d5fa432145afc8493ebda97719ce
Author: Justin Hibbits <jhibbits@FreeBSD.org>
AuthorDate: 2023-02-10 15:45:44 +0000
Commit: Justin Hibbits <jhibbits@FreeBSD.org>
CommitDate: 2023-02-14 15:21:20 +0000
IfAPI: Add capabilities2/capenable2 accessors
Summary:
As a stopgap measure add basic accessors for the if_capabilities2 and
if_capenable2 members to further hide the ifnet details.
Sponsored by: Juniper Networks, Inc.
Reviewed by: glebius, kib
Differential Revision: https://reviews.freebsd.org/D38487
---
sys/net/if.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
sys/net/if_var.h | 7 +++++++
2 files changed, 56 insertions(+)
diff --git a/sys/net/if.c b/sys/net/if.c
index d17738fda0b7..da684dedec73 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -4242,6 +4242,42 @@ if_setcapenablebit(if_t ifp, int setcap, int clearcap)
return (0);
}
+int
+if_setcapabilities2(if_t ifp, int capabilities)
+{
+ ifp->if_capabilities2 = capabilities;
+ return (0);
+}
+
+int
+if_setcapabilities2bit(if_t ifp, int setbit, int clearbit)
+{
+ ifp->if_capabilities2 &= ~clearbit;
+ ifp->if_capabilities2 |= setbit;
+ return (0);
+}
+
+int
+if_getcapabilities2(const if_t ifp)
+{
+ return (ifp->if_capabilities2);
+}
+
+int
+if_setcapenable2(if_t ifp, int capabilities2)
+{
+ ifp->if_capenable2 = capabilities2;
+ return (0);
+}
+
+int
+if_setcapenable2bit(if_t ifp, int setcap, int clearcap)
+{
+ ifp->if_capenable2 &= ~clearcap;
+ ifp->if_capenable2 |= setcap;
+ return (0);
+}
+
const char *
if_getdname(const if_t ifp)
{
@@ -4283,6 +4319,19 @@ if_getcapenable(const if_t ifp)
return ((struct ifnet *)ifp)->if_capenable;
}
+int
+if_togglecapenable2(if_t ifp, int togglecap)
+{
+ ifp->if_capenable2 ^= togglecap;
+ return (0);
+}
+
+int
+if_getcapenable2(const if_t ifp)
+{
+ return (ifp->if_capenable2);
+}
+
int
if_getdunit(const if_t ifp)
{
diff --git a/sys/net/if_var.h b/sys/net/if_var.h
index f6bb77908d40..ef3e3d71a262 100644
--- a/sys/net/if_var.h
+++ b/sys/net/if_var.h
@@ -576,6 +576,13 @@ int if_togglecapenable(if_t ifp, int togglecap);
int if_setcapenable(if_t ifp, int capenable);
int if_setcapenablebit(if_t ifp, int setcap, int clearcap);
int if_getcapenable(const if_t ifp);
+int if_setcapabilities2(if_t ifp, int capabilities);
+int if_setcapabilities2bit(if_t ifp, int setbit, int clearbit);
+int if_getcapabilities2(const if_t ifp);
+int if_togglecapenable2(if_t ifp, int togglecap);
+int if_setcapenable2(if_t ifp, int capenable);
+int if_setcapenable2bit(if_t ifp, int setcap, int clearcap);
+int if_getcapenable2(const if_t ifp);
int if_getdunit(const if_t ifp);
int if_getindex(const if_t ifp);
int if_getidxgen(const if_t ifp);