<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts" build number 1,234</shortDescription><upstreamBuild>1234</upstreamBuild><upstreamProject>gerrit-osmo-bts</upstreamProject><upstreamUrl>job/gerrit-osmo-bts/</upstreamUrl></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>569511</buildingDurationMillis><executingTimeMillis>569511</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>6036</queuingDurationMillis><queuingTimeMillis>6036</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>575547</totalDurationMillis><waitingDurationMillis>6035</waitingDurationMillis><waitingTimeMillis>6035</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1231/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1231/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1231/testReport</testsUrl></action><building>false</building><displayName>#1231</displayName><duration>569511</duration><estimatedDuration>569962</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106665</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1231/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName><id>dtv.comp</id></culprit><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>259149</buildableDurationMillis><buildableTimeMillis>259149</buildableTimeMillis><buildingDurationMillis>78115</buildingDurationMillis><executingTimeMillis>78115</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>78115</duration><estimatedDuration>78556</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=litecell15,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106692</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=litecell15,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>194725</buildableDurationMillis><buildableTimeMillis>194725</buildableTimeMillis><buildingDurationMillis>68969</buildingDurationMillis><executingTimeMillis>68969</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>68969</duration><estimatedDuration>104121</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106683</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>196946</buildableDurationMillis><buildableTimeMillis>196946</buildableTimeMillis><buildingDurationMillis>72729</buildingDurationMillis><executingTimeMillis>72729</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>72729</duration><estimatedDuration>125159</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=v2017.01,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106685</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=lc15,FIRMWARE_VERSION=v2017.01,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>196588</buildableDurationMillis><buildableTimeMillis>196588</buildableTimeMillis><buildingDurationMillis>67080</buildingDurationMillis><executingTimeMillis>67080</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>67080</duration><estimatedDuration>125163</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106684</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>197266</buildableDurationMillis><buildableTimeMillis>197266</buildableTimeMillis><buildingDurationMillis>66392</buildingDurationMillis><executingTimeMillis>66392</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>66392</duration><estimatedDuration>102011</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106686</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>258712</buildableDurationMillis><buildableTimeMillis>258712</buildableTimeMillis><buildingDurationMillis>69543</buildingDurationMillis><executingTimeMillis>69543</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>69543</duration><estimatedDuration>101227</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g-next,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106691</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g-next,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>181578</buildableDurationMillis><buildableTimeMillis>181578</buildableTimeMillis><buildingDurationMillis>77152</buildingDurationMillis><executingTimeMillis>77152</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>77152</duration><estimatedDuration>99499</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106680</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oct,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>181579</buildableDurationMillis><buildableTimeMillis>181579</buildableTimeMillis><buildingDurationMillis>73188</buildingDurationMillis><executingTimeMillis>73188</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>73188</duration><estimatedDuration>118833</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct+trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106681</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=oct+trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>255245</buildableDurationMillis><buildableTimeMillis>255245</buildableTimeMillis><buildingDurationMillis>85992</buildingDurationMillis><executingTimeMillis>85992</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>85992</duration><estimatedDuration>124500</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=femtobts_v2.7,1,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106690</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=femtobts_v2.7,WITH_MANUALS=1,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>189246</buildableDurationMillis><buildableTimeMillis>189246</buildableTimeMillis><buildingDurationMillis>68952</buildingDurationMillis><executingTimeMillis>68952</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>68952</duration><estimatedDuration>118963</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106682</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>201344</buildableDurationMillis><buildableTimeMillis>201344</buildableTimeMillis><buildingDurationMillis>68680</buildingDurationMillis><executingTimeMillis>68680</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>68680</duration><estimatedDuration>100658</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v2.4,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106687</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v2.4,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>201935</buildableDurationMillis><buildableTimeMillis>201935</buildableTimeMillis><buildingDurationMillis>68183</buildingDurationMillis><executingTimeMillis>68183</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>68183</duration><estimatedDuration>121615</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.0.1pre,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106688</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.0.1pre,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>202239</buildableDurationMillis><buildableTimeMillis>202239</buildableTimeMillis><buildingDurationMillis>67998</buildingDurationMillis><executingTimeMillis>67998</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>67998</duration><estimatedDuration>122254</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.1,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106689</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.1,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>264481</buildableDurationMillis><buildableTimeMillis>264481</buildableTimeMillis><buildingDurationMillis>64640</buildingDurationMillis><executingTimeMillis>64640</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>64640</duration><estimatedDuration>76656</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v5.1,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106694</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v5.1,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>264433</buildableDurationMillis><buildableTimeMillis>264433</buildableTimeMillis><buildingDurationMillis>64675</buildingDurationMillis><executingTimeMillis>64675</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_2023q1 _class='hudson.plugins.git.util.Build'><buildNumber>374</buildNumber><marked><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></marked><revision><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><branch><SHA1>bfdc23b1c676d017da2c1dff26d937be9c9926e2</SHA1><name>2023q1</name></branch></revision></_2023q1><osmith1.7.1 _class='hudson.plugins.git.util.Build'><buildNumber>794</buildNumber><marked><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></marked><revision><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><branch><SHA1>f79a23bab0e43959d25363d2a4903127e0a1cb3a</SHA1><name>osmith/1.7.1</name></branch></revision></osmith1.7.1><osmith1.7.2 _class='hudson.plugins.git.util.Build'><buildNumber>874</buildNumber><marked><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></marked><revision><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><branch><SHA1>75a087d16ba2539b8bcf05102b41d820e8187241</SHA1><name>osmith/1.7.2</name></branch></revision></osmith1.7.2><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>64675</duration><estimatedDuration>74672</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106693</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=osmocom-gerrit/1231/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42692</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Timur Davydov</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/92/42692/7</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts/1234/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>osmo-bts</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-osmo-bts-build" build number 1,231</shortDescription><upstreamBuild>1231</upstreamBuild><upstreamProject>gerrit-osmo-bts-build</upstreamProject><upstreamUrl>job/gerrit-osmo-bts-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>1</buildableDurationMillis><buildableTimeMillis>1</buildableTimeMillis><buildingDurationMillis>562313</buildingDurationMillis><executingTimeMillis>562313</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><master _class='hudson.plugins.git.util.Build'><buildNumber>1231</buildNumber><marked><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></marked><revision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><branch><SHA1>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/osmo-bts</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#1231</displayName><duration>562313</duration><estimatedDuration>564905</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,raspbian #1231</fullDisplayName><id>1231</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1231</number><queueId>106695</queueId><result>SUCCESS</result><timestamp>1777653153040</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/BTS_MODEL=trx,FIRMWARE_VERSION=master,WITH_MANUALS=0,a4=default,label=raspbian/1231/</url><builtOn>rpi4-raspbian12build-ansible-2</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/osmo-bts-trx/scheduler_trx.c</affectedPath><commitId>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</commitId><timestamp>1777651671000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></author><authorEmail>dtv.comp@gmail.com</authorEmail><comment>trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
</comment><date>2026-05-01 20:07:51 +0400</date><id>5ba545d9e989d53d6cc8c2934b78d8ad34d1c856</id><msg>trx: factor out FN timer processing into common helper</msg><path><editType>edit</editType><file>src/osmo-bts-trx/scheduler_trx.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/dtv.comp</absoluteUrl><fullName>dtv.comp</fullName></culprit></run></matrixBuild>