summaryrefslogtreecommitdiffstats
path: root/libnetdata/libjudy/src/JudyL/JudyLMemActive.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 12:08:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 12:08:18 +0000
commit5da14042f70711ea5cf66e034699730335462f66 (patch)
tree0f6354ccac934ed87a2d555f45be4c831cf92f4a /libnetdata/libjudy/src/JudyL/JudyLMemActive.c
parentReleasing debian version 1.44.3-2. (diff)
downloadnetdata-5da14042f70711ea5cf66e034699730335462f66.tar.xz
netdata-5da14042f70711ea5cf66e034699730335462f66.zip
Merging upstream version 1.45.3+dfsg.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libnetdata/libjudy/src/JudyL/JudyLMemActive.c')
-rw-r--r--libnetdata/libjudy/src/JudyL/JudyLMemActive.c259
1 files changed, 0 insertions, 259 deletions
diff --git a/libnetdata/libjudy/src/JudyL/JudyLMemActive.c b/libnetdata/libjudy/src/JudyL/JudyLMemActive.c
deleted file mode 100644
index fb58d0e25..000000000
--- a/libnetdata/libjudy/src/JudyL/JudyLMemActive.c
+++ /dev/null
@@ -1,259 +0,0 @@
-// Copyright (C) 2000 - 2002 Hewlett-Packard Company
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the term of the GNU Lesser General Public License as published by the
-// Free Software Foundation; either version 2 of the License, or (at your
-// option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
-// for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-// _________________
-
-// @(#) $Revision: 4.7 $ $Source: /judy/src/JudyCommon/JudyMemActive.c $
-//
-// Return number of bytes of memory used to support a Judy1/L array.
-// Compile with one of -DJUDY1 or -DJUDYL.
-
-#if (! (defined(JUDY1) || defined(JUDYL)))
-#error: One of -DJUDY1 or -DJUDYL must be specified.
-#endif
-
-#ifdef JUDY1
-#include "Judy1.h"
-#else
-#include "JudyL.h"
-#endif
-
-#include "JudyPrivate1L.h"
-
-FUNCTION static Word_t j__udyGetMemActive(Pjp_t);
-
-
-// ****************************************************************************
-// J U D Y 1 M E M A C T I V E
-// J U D Y L M E M A C T I V E
-
-#ifdef JUDY1
-FUNCTION Word_t Judy1MemActive
-#else
-FUNCTION Word_t JudyLMemActive
-#endif
- (
- Pcvoid_t PArray // from which to retrieve.
- )
-{
- if (PArray == (Pcvoid_t)NULL) return(0);
-
- if (JU_LEAFW_POP0(PArray) < cJU_LEAFW_MAXPOP1) // must be a LEAFW
- {
- Pjlw_t Pjlw = P_JLW(PArray); // first word of leaf.
- Word_t Words = Pjlw[0] + 1; // population.
-#ifdef JUDY1
- return((Words + 1) * sizeof(Word_t));
-#else
- return(((Words * 2) + 1) * sizeof(Word_t));
-#endif
- }
- else
- {
- Pjpm_t Pjpm = P_JPM(PArray);
- return(j__udyGetMemActive(&Pjpm->jpm_JP) + sizeof(jpm_t));
- }
-
-} // JudyMemActive()
-
-
-// ****************************************************************************
-// __ J U D Y G E T M E M A C T I V E
-
-FUNCTION static Word_t j__udyGetMemActive(
- Pjp_t Pjp) // top of subtree.
-{
- Word_t offset; // in a branch.
- Word_t Bytes = 0; // actual bytes used at this level.
- Word_t IdxSz; // bytes per index in leaves
-
- switch (JU_JPTYPE(Pjp))
- {
-
- case cJU_JPBRANCH_L2:
- case cJU_JPBRANCH_L3:
-#ifdef JU_64BIT
- case cJU_JPBRANCH_L4:
- case cJU_JPBRANCH_L5:
- case cJU_JPBRANCH_L6:
- case cJU_JPBRANCH_L7:
-#endif
- case cJU_JPBRANCH_L:
- {
- Pjbl_t Pjbl = P_JBL(Pjp->jp_Addr);
-
- for (offset = 0; offset < (Pjbl->jbl_NumJPs); ++offset)
- Bytes += j__udyGetMemActive((Pjbl->jbl_jp) + offset);
-
- return(Bytes + sizeof(jbl_t));
- }
-
- case cJU_JPBRANCH_B2:
- case cJU_JPBRANCH_B3:
-#ifdef JU_64BIT
- case cJU_JPBRANCH_B4:
- case cJU_JPBRANCH_B5:
- case cJU_JPBRANCH_B6:
- case cJU_JPBRANCH_B7:
-#endif
- case cJU_JPBRANCH_B:
- {
- Word_t subexp;
- Word_t jpcount;
- Pjbb_t Pjbb = P_JBB(Pjp->jp_Addr);
-
- for (subexp = 0; subexp < cJU_NUMSUBEXPB; ++subexp)
- {
- jpcount = j__udyCountBitsB(JU_JBB_BITMAP(Pjbb, subexp));
- Bytes += jpcount * sizeof(jp_t);
-
- for (offset = 0; offset < jpcount; ++offset)
- {
- Bytes += j__udyGetMemActive(P_JP(JU_JBB_PJP(Pjbb, subexp))
- + offset);
- }
- }
-
- return(Bytes + sizeof(jbb_t));
- }
-
- case cJU_JPBRANCH_U2:
- case cJU_JPBRANCH_U3:
-#ifdef JU_64BIT
- case cJU_JPBRANCH_U4:
- case cJU_JPBRANCH_U5:
- case cJU_JPBRANCH_U6:
- case cJU_JPBRANCH_U7:
-#endif
- case cJU_JPBRANCH_U:
- {
- Pjbu_t Pjbu = P_JBU(Pjp->jp_Addr);
-
- for (offset = 0; offset < cJU_BRANCHUNUMJPS; ++offset)
- {
- if (((Pjbu->jbu_jp[offset].jp_Type) >= cJU_JPNULL1)
- && ((Pjbu->jbu_jp[offset].jp_Type) <= cJU_JPNULLMAX))
- {
- continue; // skip null JP to save time.
- }
-
- Bytes += j__udyGetMemActive(Pjbu->jbu_jp + offset);
- }
-
- return(Bytes + sizeof(jbu_t));
- }
-
-
-// -- Cases below here terminate and do not recurse. --
-
-#if (defined(JUDYL) || (! defined(JU_64BIT)))
- case cJU_JPLEAF1: IdxSz = 1; goto LeafWords;
-#endif
- case cJU_JPLEAF2: IdxSz = 2; goto LeafWords;
- case cJU_JPLEAF3: IdxSz = 3; goto LeafWords;
-#ifdef JU_64BIT
- case cJU_JPLEAF4: IdxSz = 4; goto LeafWords;
- case cJU_JPLEAF5: IdxSz = 5; goto LeafWords;
- case cJU_JPLEAF6: IdxSz = 6; goto LeafWords;
- case cJU_JPLEAF7: IdxSz = 7; goto LeafWords;
-#endif
-LeafWords:
-
-#ifdef JUDY1
- return(IdxSz * (JU_JPLEAF_POP0(Pjp) + 1));
-#else
- return((IdxSz + sizeof(Word_t))
- * (JU_JPLEAF_POP0(Pjp) + 1));
-#endif
- case cJU_JPLEAF_B1:
- {
-#ifdef JUDY1
- return(sizeof(jlb_t));
-#else
- Bytes = (JU_JPLEAF_POP0(Pjp) + 1) * sizeof(Word_t);
-
- return(Bytes + sizeof(jlb_t));
-#endif
- }
-
- JUDY1CODE(case cJ1_JPFULLPOPU1: return(0);)
-
-#ifdef JUDY1
-#define J__Mpy 0
-#else
-#define J__Mpy sizeof(Word_t)
-#endif
-
- case cJU_JPIMMED_1_01: return(0);
- case cJU_JPIMMED_2_01: return(0);
- case cJU_JPIMMED_3_01: return(0);
-#ifdef JU_64BIT
- case cJU_JPIMMED_4_01: return(0);
- case cJU_JPIMMED_5_01: return(0);
- case cJU_JPIMMED_6_01: return(0);
- case cJU_JPIMMED_7_01: return(0);
-#endif
-
- case cJU_JPIMMED_1_02: return(J__Mpy * 2);
- case cJU_JPIMMED_1_03: return(J__Mpy * 3);
-#if (defined(JUDY1) || defined(JU_64BIT))
- case cJU_JPIMMED_1_04: return(J__Mpy * 4);
- case cJU_JPIMMED_1_05: return(J__Mpy * 5);
- case cJU_JPIMMED_1_06: return(J__Mpy * 6);
- case cJU_JPIMMED_1_07: return(J__Mpy * 7);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
- case cJ1_JPIMMED_1_08: return(0);
- case cJ1_JPIMMED_1_09: return(0);
- case cJ1_JPIMMED_1_10: return(0);
- case cJ1_JPIMMED_1_11: return(0);
- case cJ1_JPIMMED_1_12: return(0);
- case cJ1_JPIMMED_1_13: return(0);
- case cJ1_JPIMMED_1_14: return(0);
- case cJ1_JPIMMED_1_15: return(0);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
- case cJU_JPIMMED_2_02: return(J__Mpy * 2);
- case cJU_JPIMMED_2_03: return(J__Mpy * 3);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
- case cJ1_JPIMMED_2_04: return(0);
- case cJ1_JPIMMED_2_05: return(0);
- case cJ1_JPIMMED_2_06: return(0);
- case cJ1_JPIMMED_2_07: return(0);
-#endif
-
-#if (defined(JUDY1) || defined(JU_64BIT))
- case cJU_JPIMMED_3_02: return(J__Mpy * 2);
-#endif
-#if (defined(JUDY1) && defined(JU_64BIT))
- case cJ1_JPIMMED_3_03: return(0);
- case cJ1_JPIMMED_3_04: return(0);
- case cJ1_JPIMMED_3_05: return(0);
-
- case cJ1_JPIMMED_4_02: return(0);
- case cJ1_JPIMMED_4_03: return(0);
- case cJ1_JPIMMED_5_02: return(0);
- case cJ1_JPIMMED_5_03: return(0);
- case cJ1_JPIMMED_6_02: return(0);
- case cJ1_JPIMMED_7_02: return(0);
-#endif
-
- } // switch (JU_JPTYPE(Pjp))
-
- return(0); // to make some compilers happy.
-
-} // j__udyGetMemActive()