Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Feb 2023 15:36:21 GMT
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: a3a76c3d9031 - main - IfAPI: Add capabilities2/capenable2 accessors
Message-ID:  <202302141536.31EFaLf9043766@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202302141536.31EFaLf9043766>