<p>Hoernchen has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/25437">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header<br><br>rate_ctr_add merely increments a number, so hiding this in a shared<br>library means the compiler can't just inline it, there will always be a<br>function call into that lib just for icrementing a value.<br><br>This also applies to rate_ctr_group_get_ctr.<br><br>Moving the funcs to the header fixes that.<br><br>Change-Id: Ib600f39f10d263606f3cb51a25676b56b80dfe83<br>---<br>M include/osmocom/core/rate_ctr.h<br>M src/rate_ctr.c<br>2 files changed, 13 insertions(+), 18 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/37/25437/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/core/rate_ctr.h b/include/osmocom/core/rate_ctr.h</span><br><span>index ffaae91..558c77a 100644</span><br><span>--- a/include/osmocom/core/rate_ctr.h</span><br><span>+++ b/include/osmocom/core/rate_ctr.h</span><br><span>@@ -77,14 +77,25 @@</span><br><span> }</span><br><span> void rate_ctr_group_set_name(struct rate_ctr_group *grp, const char *name);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-struct rate_ctr *rate_ctr_group_get_ctr(struct rate_ctr_group *grp, unsigned int idx);</span><br><span style="color: hsl(120, 100%, 40%);">+/*! Get rate counter from group, identified by index idx</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] grp Rate counter group</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] idx Index of the counter to retrieve</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \returns rate counter requested</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+static struct rate_ctr *rate_ctr_group_get_ctr(struct rate_ctr_group *grp, unsigned int idx)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  return &grp->ctr[idx];</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> void rate_ctr_group_free(struct rate_ctr_group *grp);</span><br><span> </span><br><span> /*! Increment the counter by \a inc</span><br><span>  *  \param ctr \ref rate_ctr to increment</span><br><span>  *  \param inc quantity to increment \a ctr by */</span><br><span style="color: hsl(0, 100%, 40%);">-void rate_ctr_add(struct rate_ctr *ctr, int inc);</span><br><span style="color: hsl(120, 100%, 40%);">+static void rate_ctr_add(struct rate_ctr *ctr, int inc)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       ctr->current += inc;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> /*! Increment the counter by 1</span><br><span>  *  \param ctr \ref rate_ctr to increment */</span><br><span>diff --git a/src/rate_ctr.c b/src/rate_ctr.c</span><br><span>index aa02005..0400bfe 100644</span><br><span>--- a/src/rate_ctr.c</span><br><span>+++ b/src/rate_ctr.c</span><br><span>@@ -265,16 +265,6 @@</span><br><span>         talloc_free(grp);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/*! Get rate counter from group, identified by index idx</span><br><span style="color: hsl(0, 100%, 40%);">- *  \param[in] grp Rate counter group</span><br><span style="color: hsl(0, 100%, 40%);">- *  \param[in] idx Index of the counter to retrieve</span><br><span style="color: hsl(0, 100%, 40%);">- *  \returns rate counter requested</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-struct rate_ctr *rate_ctr_group_get_ctr(struct rate_ctr_group *grp, unsigned int idx)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-  return &grp->ctr[idx];</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /*! Set a name for the group of counters be used instead of index value</span><br><span>   at report time.</span><br><span>  *  \param[in] grp Rate counter group</span><br><span>@@ -285,12 +275,6 @@</span><br><span>       osmo_talloc_replace_string(grp, &grp->name, name);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/*! Add a number to the counter */</span><br><span style="color: hsl(0, 100%, 40%);">-void rate_ctr_add(struct rate_ctr *ctr, int inc)</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-   ctr->current += inc;</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /*! Return the counter difference since the last call to this function */</span><br><span> int64_t rate_ctr_difference(struct rate_ctr *ctr)</span><br><span> {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/25437">change 25437</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/libosmocore/+/25437"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ib600f39f10d263606f3cb51a25676b56b80dfe83 </div>
<div style="display:none"> Gerrit-Change-Number: 25437 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>