From nobody Mon Aug 1 07:38:12 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Lx92r2Vvjz4XpyG; Mon, 1 Aug 2022 07:38:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Lx92r1ppwz3P0r; Mon, 1 Aug 2022 07:38:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659339492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d0jxL3FFxUfwf4Y6Wjs6bL+grsTTBfu5tdgfUvcQAW8=; b=eHOhiIHYSGVtSe+xeRYsOXye75wtb1vZnJxU/Q6/X20PfLlzq7zaMjTAcKSNv88mFHLQJR 8Mx4vaGNGgHESg9ndM7Uk9Br+UxsBj2zv3NxmHhg12T5w0lhw0gSdhswT9rvMnhBCEZ2+s wt3p59jp5lsJrRCo6sGHIQOFX3n1C3VEWG6tzRMku5yPoNS4fvQz3A6N8oLMtH8Oyz3nhu DiMW5rjwPn9E4e7eYwr/R3B40a6oD0rkcUOSgakdgsj4aLCCDpCKfCVQsnwpxYMFFaHWGs 7bjTNAdvPqR51GJZpIEXlw4wqlMuHfDruZ1x68Sli2pvJj1SdmfyHGmrrAsepw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Lx92r0vgRzQFD; Mon, 1 Aug 2022 07:38:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2717cCOd083494; Mon, 1 Aug 2022 07:38:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2717cC8U083493; Mon, 1 Aug 2022 07:38:12 GMT (envelope-from git) Date: Mon, 1 Aug 2022 07:38:12 GMT Message-Id: <202208010738.2717cC8U083493@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Alexander V. Chernikov" Subject: git: 97ffaff85968 - main - net: constantify radix.c functions List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: melifaro X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 97ffaff85968d09f2319156cb0ef56743667db6e Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1659339492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d0jxL3FFxUfwf4Y6Wjs6bL+grsTTBfu5tdgfUvcQAW8=; b=pdB7a7iKaqAb1/MK93hSSwZltGPDkoJiHMMbk4zhmG1e8JRi3QcUrANIcTOuyoQIBW8UeP DGYo2ZAQkqHiIEp77hlIS7k5g4sESDmYPN0PJORa0FOvK63Aluo9W1x6xPtFMYuQf7Sfb6 OoxPM5hqboTAsCWDuWIGmt0EShIM81piD8bEChksH16VBkENSHVezwf+1+Il/9oNAaF1Za xdd3QdXUXFVpdkUSKvfZH57qMyH3uWeBtZgR2qHy3NCQJv+sojlKsLJeMXdTc+8dChqg6P etBt/5J+8FXQeSBr16CgzCwAM0B0Gm9putv1ndGI61KPj2IfiFjO6FaRfZnMbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1659339492; a=rsa-sha256; cv=none; b=OMcq/0y9wiu+z1CMKD2bzkAsvO2YxjFbcmXfj0XQSqG+uYBAMqPLorwOipyTo7UilKLssk mx5ivrFh+StnZ8/n1peE+uqm7VjpfNuiP9yFdHabl60LmEZjFFaEWl4M/qzUPYxbqQwWo6 cbtK9gUDFrICJ/Ggv7krpTJDBXc0JsQbK/pBiY6dfSHmTusY33KIAUa6szd1emSQC0Dy98 v2PDGiRXz79tbdjw081XSEpCFhU7RvCUj/05AbV4RGyASgq5u4/3ENNYjjfcazWZWMeJ7e 1Z4XetcfJkB5/dA5wDwPiXKldtPTVJMVfdjXK0pgvbtv3UTyQPd7DM5J6xBKVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by melifaro: URL: https://cgit.FreeBSD.org/src/commit/?id=97ffaff85968d09f2319156cb0ef56743667db6e commit 97ffaff85968d09f2319156cb0ef56743667db6e Author: Alexander V. Chernikov AuthorDate: 2022-07-28 13:04:43 +0000 Commit: Alexander V. Chernikov CommitDate: 2022-08-01 07:32:40 +0000 net: constantify radix.c functions Mark dst/mask public API functions fields as const to clearly indicate that these parameters are not modified or stored in the datastructure. Differential Revision: https://reviews.freebsd.org/D35971 MFC after: 2 weeks --- sys/net/radix.c | 78 +++++++++++++++++++++++++++++---------------------------- sys/net/radix.h | 18 ++++++------- 2 files changed, 49 insertions(+), 47 deletions(-) diff --git a/sys/net/radix.c b/sys/net/radix.c index 2169361c7229..14e81ebbd414 100644 --- a/sys/net/radix.c +++ b/sys/net/radix.c @@ -58,9 +58,9 @@ static struct radix_node *rn_insert(void *, struct radix_head *, int *, struct radix_node [2]), *rn_newpair(void *, int, struct radix_node[2]), - *rn_search(void *, struct radix_node *), - *rn_search_m(void *, struct radix_node *, void *); -static struct radix_node *rn_addmask(void *, struct radix_mask_head *, int,int); + *rn_search(const void *, struct radix_node *), + *rn_search_m(const void *, struct radix_node *, void *); +static struct radix_node *rn_addmask(const void *, struct radix_mask_head *, int,int); static void rn_detachhead_internal(struct radix_head *); @@ -74,11 +74,11 @@ static char rn_ones[RADIX_MAX_KEY_LEN] = { -1, -1, -1, -1, -1, -1, -1, -1, }; -static int rn_lexobetter(void *m_arg, void *n_arg); +static int rn_lexobetter(const void *m_arg, const void *n_arg); static struct radix_mask * rn_new_radix_mask(struct radix_node *tt, struct radix_mask *next); -static int rn_satisfies_leaf(char *trial, struct radix_node *leaf, +static int rn_satisfies_leaf(const char *trial, struct radix_node *leaf, int skip); /* @@ -142,10 +142,10 @@ static int rn_satisfies_leaf(char *trial, struct radix_node *leaf, * Search a node in the tree matching the key. */ static struct radix_node * -rn_search(void *v_arg, struct radix_node *head) +rn_search(const void *v_arg, struct radix_node *head) { struct radix_node *x; - caddr_t v; + c_caddr_t v; for (x = head, v = v_arg; x->rn_bit >= 0;) { if (x->rn_bmask & v[x->rn_offset]) @@ -161,10 +161,10 @@ rn_search(void *v_arg, struct radix_node *head) * XXX note this function is used only once. */ static struct radix_node * -rn_search_m(void *v_arg, struct radix_node *head, void *m_arg) +rn_search_m(const void *v_arg, struct radix_node *head, void *m_arg) { struct radix_node *x; - caddr_t v = v_arg, m = m_arg; + c_caddr_t v = v_arg, m = m_arg; for (x = head; x->rn_bit >= 0;) { if ((x->rn_bmask & m[x->rn_offset]) && @@ -177,10 +177,10 @@ rn_search_m(void *v_arg, struct radix_node *head, void *m_arg) } int -rn_refines(void *m_arg, void *n_arg) +rn_refines(const void *m_arg, const void *n_arg) { - caddr_t m = m_arg, n = n_arg; - caddr_t lim, lim2 = lim = n + LEN(n); + c_caddr_t m = m_arg, n = n_arg; + c_caddr_t lim, lim2 = lim = n + LEN(n); int longer = LEN(n++) - LEN(m++); int masks_are_equal = 1; @@ -209,7 +209,7 @@ rn_refines(void *m_arg, void *n_arg) * from host routes. */ struct radix_node * -rn_lookup(void *v_arg, void *m_arg, struct radix_head *head) +rn_lookup(const void *v_arg, const void *m_arg, struct radix_head *head) { struct radix_node *x; caddr_t netmask; @@ -250,10 +250,10 @@ rn_lookup(void *v_arg, void *m_arg, struct radix_head *head) } static int -rn_satisfies_leaf(char *trial, struct radix_node *leaf, int skip) +rn_satisfies_leaf(const char *trial, struct radix_node *leaf, int skip) { - char *cp = trial, *cp2 = leaf->rn_key, *cp3 = leaf->rn_mask; - char *cplim; + const char *cp = trial, *cp2 = leaf->rn_key, *cp3 = leaf->rn_mask; + const char *cplim; int length = min(LEN(cp), LEN(cp2)); if (cp3 == NULL) @@ -271,12 +271,12 @@ rn_satisfies_leaf(char *trial, struct radix_node *leaf, int skip) * Search for longest-prefix match in given @head */ struct radix_node * -rn_match(void *v_arg, struct radix_head *head) +rn_match(const void *v_arg, struct radix_head *head) { - caddr_t v = v_arg; + c_caddr_t v = v_arg; struct radix_node *t = head->rnh_treetop, *x; - caddr_t cp = v, cp2; - caddr_t cplim; + c_caddr_t cp = v, cp2; + c_caddr_t cplim; struct radix_node *saved_t, *top = t; int off = t->rn_offset, vlen = LEN(cp), matched_off; int test, b, rn_bit; @@ -498,10 +498,11 @@ on1: } static struct radix_node * -rn_addmask(void *n_arg, struct radix_mask_head *maskhead, int search, int skip) +rn_addmask(const void *n_arg, struct radix_mask_head *maskhead, int search, int skip) { - unsigned char *netmask = n_arg; - unsigned char *cp, *cplim; + const unsigned char *netmask = n_arg; + const unsigned char *c, *clim; + unsigned char *cp; struct radix_node *x; int b = 0, mlen, j; int maskduplicated, isnormal; @@ -552,17 +553,17 @@ rn_addmask(void *n_arg, struct radix_mask_head *maskhead, int search, int skip) * a non-contiguous mask. */ #define CONTIG(_c) (((~(_c) + 1) & (_c)) == (unsigned char)(~(_c) + 1)) - cplim = netmask + mlen; + clim = netmask + mlen; isnormal = 1; - for (cp = netmask + skip; (cp < cplim) && *(u_char *)cp == 0xff;) - cp++; - if (cp != cplim) { - for (j = 0x80; (j & *cp) != 0; j >>= 1) + for (c = netmask + skip; (c < clim) && *(const u_char *)c == 0xff;) + c++; + if (c != clim) { + for (j = 0x80; (j & *c) != 0; j >>= 1) b++; - if (!CONTIG(*cp) || cp != (cplim - 1)) + if (!CONTIG(*c) || c != (clim - 1)) isnormal = 0; } - b += (cp - netmask) << 3; + b += (c - netmask) << 3; x->rn_bit = -1 - b; if (isnormal) x->rn_flags |= RNF_NORMAL; @@ -570,9 +571,9 @@ rn_addmask(void *n_arg, struct radix_mask_head *maskhead, int search, int skip) } static int /* XXX: arbitrary ordering for non-contiguous masks */ -rn_lexobetter(void *m_arg, void *n_arg) +rn_lexobetter(const void *m_arg, const void *n_arg) { - u_char *mp = m_arg, *np = n_arg, *lim; + const u_char *mp = m_arg, *np = n_arg, *lim; if (LEN(mp) > LEN(np)) return (1); /* not really, but need to check longer one first */ @@ -606,10 +607,10 @@ rn_new_radix_mask(struct radix_node *tt, struct radix_mask *next) } struct radix_node * -rn_addroute(void *v_arg, void *n_arg, struct radix_head *head, +rn_addroute(void *v_arg, const void *n_arg, struct radix_head *head, struct radix_node treenodes[2]) { - caddr_t v = (caddr_t)v_arg, netmask = (caddr_t)n_arg; + caddr_t v = (caddr_t)v_arg, netmask = NULL; struct radix_node *t, *x = NULL, *tt; struct radix_node *saved_tt, *top = head->rnh_treetop; short b = 0, b_leaf = 0; @@ -624,8 +625,8 @@ rn_addroute(void *v_arg, void *n_arg, struct radix_head *head, * the mask to speed avoiding duplicate references at * nodes and possibly save time in calculating indices. */ - if (netmask) { - x = rn_addmask(netmask, head->rnh_masks, 0, top->rn_offset); + if (n_arg) { + x = rn_addmask(n_arg, head->rnh_masks, 0, top->rn_offset); if (x == NULL) return (0); b_leaf = x->rn_bit; @@ -763,12 +764,13 @@ on2: } struct radix_node * -rn_delete(void *v_arg, void *netmask_arg, struct radix_head *head) +rn_delete(const void *v_arg, const void *netmask_arg, struct radix_head *head) { struct radix_node *t, *p, *x, *tt; struct radix_mask *m, *saved_m, **mp; struct radix_node *dupedkey, *saved_tt, *top; - caddr_t v, netmask; + c_caddr_t v; + c_caddr_t netmask; int b, head_off, vlen; v = v_arg; diff --git a/sys/net/radix.h b/sys/net/radix.h index 97555ee9e16d..f9987934bed4 100644 --- a/sys/net/radix.h +++ b/sys/net/radix.h @@ -106,13 +106,13 @@ struct radix_mask { struct radix_head; typedef int walktree_f_t(struct radix_node *, void *); -typedef struct radix_node *rn_matchaddr_f_t(void *v, +typedef struct radix_node *rn_matchaddr_f_t(const void *v, struct radix_head *head); -typedef struct radix_node *rn_addaddr_f_t(void *v, void *mask, +typedef struct radix_node *rn_addaddr_f_t(void *v, const void *mask, struct radix_head *head, struct radix_node nodes[]); -typedef struct radix_node *rn_deladdr_f_t(void *v, void *mask, +typedef struct radix_node *rn_deladdr_f_t(const void *v, const void *mask, struct radix_head *head); -typedef struct radix_node *rn_lookup_f_t(void *v, void *mask, +typedef struct radix_node *rn_lookup_f_t(const void *v, const void *mask, struct radix_head *head); typedef int rn_walktree_t(struct radix_head *head, walktree_f_t *f, void *w); @@ -176,13 +176,13 @@ void rn_inithead_internal(struct radix_head *rh, struct radix_node *base_nodes, int rn_inithead(void **, int); int rn_detachhead(void **); -int rn_refines(void *, void *); -struct radix_node *rn_addroute(void *, void *, struct radix_head *, +int rn_refines(const void *, const void *); +struct radix_node *rn_addroute(void *, const void *, struct radix_head *, struct radix_node[2]); -struct radix_node *rn_delete(void *, void *, struct radix_head *); -struct radix_node *rn_lookup (void *v_arg, void *m_arg, +struct radix_node *rn_delete(const void *, const void *, struct radix_head *); +struct radix_node *rn_lookup (const void *v_arg, const void *m_arg, struct radix_head *head); -struct radix_node *rn_match(void *, struct radix_head *); +struct radix_node *rn_match(const void *, struct radix_head *); int rn_walktree_from(struct radix_head *h, void *a, void *m, walktree_f_t *f, void *w); int rn_walktree(struct radix_head *, walktree_f_t *, void *);