<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,175</shortDescription><upstreamBuild>1175</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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>3391662</blockedDurationMillis><blockedTimeMillis>3391662</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>566684</buildingDurationMillis><executingTimeMillis>566684</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>3397608</queuingDurationMillis><queuingTimeMillis>3397608</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>3964292</totalDurationMillis><waitingDurationMillis>5935</waitingDurationMillis><waitingTimeMillis>5935</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/1175/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/1175/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1175/testReport</testsUrl></action><building>false</building><displayName>#1175</displayName><duration>566684</duration><estimatedDuration>559787</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>101901</queueId><result>SUCCESS</result><timestamp>1777329303464</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-osmo-bts-build/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>71213</buildableDurationMillis><buildableTimeMillis>71213</buildableTimeMillis><buildingDurationMillis>59738</buildingDurationMillis><executingTimeMillis>59738</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>59738</duration><estimatedDuration>63763</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=litecell15,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102029</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>75562</buildingDurationMillis><executingTimeMillis>75562</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>75562</duration><estimatedDuration>75397</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102020</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>74608</buildingDurationMillis><executingTimeMillis>74608</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>74608</duration><estimatedDuration>73541</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=lc15,FIRMWARE_VERSION=v2017.01,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102022</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>74612</buildingDurationMillis><executingTimeMillis>74612</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>74612</duration><estimatedDuration>74284</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102021</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>75409</buildingDurationMillis><executingTimeMillis>75409</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>75409</duration><estimatedDuration>74573</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102023</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>70669</buildableDurationMillis><buildableTimeMillis>70669</buildableTimeMillis><buildingDurationMillis>58223</buildingDurationMillis><executingTimeMillis>58223</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>58223</duration><estimatedDuration>73054</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oc2g,FIRMWARE_VERSION=oc2g-next,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102028</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>72930</buildingDurationMillis><executingTimeMillis>72930</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>72930</duration><estimatedDuration>71098</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102017</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>70409</buildingDurationMillis><executingTimeMillis>70409</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>70409</duration><estimatedDuration>72827</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=oct+trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102018</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>2</buildableDurationMillis><buildableTimeMillis>2</buildableTimeMillis><buildingDurationMillis>91881</buildingDurationMillis><executingTimeMillis>91881</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>91881</duration><estimatedDuration>96435</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=femtobts_v2.7,1,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102027</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>72872</buildingDurationMillis><executingTimeMillis>72872</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>72872</duration><estimatedDuration>70134</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102019</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>72954</buildingDurationMillis><executingTimeMillis>72954</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>72954</duration><estimatedDuration>73357</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v2.4,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102024</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>70937</buildingDurationMillis><executingTimeMillis>70937</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>70937</duration><estimatedDuration>71720</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.0.1pre,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102025</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>2</buildableDurationMillis><buildableTimeMillis>2</buildableTimeMillis><buildingDurationMillis>71460</buildingDurationMillis><executingTimeMillis>71460</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>71460</duration><estimatedDuration>71124</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v3.1,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102026</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>73504</buildableDurationMillis><buildableTimeMillis>73504</buildableTimeMillis><buildingDurationMillis>90314</buildingDurationMillis><executingTimeMillis>90314</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>90314</duration><estimatedDuration>59980</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=sysmo,FIRMWARE_VERSION=superfemto_v5.1,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102031</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>71658</buildableDurationMillis><buildableTimeMillis>71658</buildableTimeMillis><buildingDurationMillis>56801</buildingDurationMillis><executingTimeMillis>56801</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>56801</duration><estimatedDuration>61806</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,osmocom-gerrit #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102030</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>3</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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/3</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/1175/</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,175</shortDescription><upstreamBuild>1175</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>564151</buildingDurationMillis><executingTimeMillis>564151</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>1175</buildNumber><marked><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></marked><revision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</SHA1><branch><SHA1>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>#1175</displayName><duration>564151</duration><estimatedDuration>557012</estimatedDuration><fullDisplayName>gerrit-osmo-bts-build » BTS_MODEL=trx,FIRMWARE_VERSION=master,0,default,raspbian #1175</fullDisplayName><id>1175</id><inProgress>false</inProgress><keepLog>false</keepLog><number>1175</number><queueId>102032</queueId><result>SUCCESS</result><timestamp>1777329303464</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/1175/</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>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</commitId><timestamp>1777324413000</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-04-28 01:13:33 +0400</date><id>c21723552b8ebe3f18a8df3aae8cc9002fa7b4e4</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>