This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 13889ba  arch/arm: unify some duplicate code to common layer
13889ba is described below

commit 13889ba8687132197010fed838c0da1ba6a77f52
Author: chao.an <anc...@xiaomi.com>
AuthorDate: Wed Feb 23 16:49:13 2022 +0800

    arch/arm: unify some duplicate code to common layer
    
    Signed-off-by: chao.an <anc...@xiaomi.com>
---
 arch/arm/src/arm/arm_releasepending.c              | 128 --------------
 arch/arm/src/armv6-m/arm_blocktask.c               | 148 -----------------
 arch/arm/src/armv6-m/arm_releasepending.c          | 116 -------------
 arch/arm/src/armv6-m/arm_reprioritizertr.c         | 174 -------------------
 arch/arm/src/armv6-m/arm_unblocktask.c             | 131 ---------------
 arch/arm/src/armv7-a/arm_blocktask.c               | 160 ------------------
 arch/arm/src/armv7-a/arm_reprioritizertr.c         | 184 ---------------------
 arch/arm/src/armv7-a/arm_unblocktask.c             | 144 ----------------
 arch/arm/src/armv7-m/arm_blocktask.c               | 148 -----------------
 arch/arm/src/armv7-m/arm_releasepending.c          | 120 --------------
 arch/arm/src/armv7-m/arm_reprioritizertr.c         | 174 -------------------
 arch/arm/src/armv7-m/arm_unblocktask.c             | 132 ---------------
 arch/arm/src/armv7-r/arm_blocktask.c               | 149 -----------------
 arch/arm/src/armv7-r/arm_releasepending.c          | 119 -------------
 arch/arm/src/armv7-r/arm_reprioritizertr.c         | 175 --------------------
 arch/arm/src/armv7-r/arm_unblocktask.c             | 147 ----------------
 arch/arm/src/armv8-m/arm_blocktask.c               | 148 -----------------
 arch/arm/src/armv8-m/arm_releasepending.c          | 120 --------------
 arch/arm/src/armv8-m/arm_reprioritizertr.c         | 174 -------------------
 arch/arm/src/armv8-m/arm_unblocktask.c             | 132 ---------------
 arch/arm/src/{arm => common}/arm_blocktask.c       |   2 +-
 .../src/{armv7-a => common}/arm_releasepending.c   |   2 +-
 arch/arm/src/{arm => common}/arm_reprioritizertr.c |   2 +-
 arch/arm/src/{arm => common}/arm_unblocktask.c     |   2 +-
 24 files changed, 4 insertions(+), 2927 deletions(-)

diff --git a/arch/arm/src/arm/arm_releasepending.c 
b/arch/arm/src/arm/arm_releasepending.c
deleted file mode 100644
index 5523098..0000000
--- a/arch/arm/src/arm/arm_releasepending.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * arch/arm/src/arm/arm_releasepending.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_release_pending
- *
- * Description:
- *   Release and ready-to-run tasks that have
- *   collected in the pending task list.  This can call a
- *   context switch if a new task is placed at the head of
- *   the ready to run list.
- *
- ****************************************************************************/
-
-void up_release_pending(void)
-{
-  struct tcb_s *rtcb = this_task();
-
-  sinfo("From TCB=%p\n", rtcb);
-
-  /* Merge the g_pendingtasks list into the ready-to-run task list */
-
-  if (nxsched_merge_pending())
-    {
-      /* The currently active task has changed!  We will need to switch
-       * contexts.
-       *
-       * Update scheduler parameters.
-       */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we operating in interrupt context? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-           arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts.  Any necessary address environment
-           * changes will be made when the interrupt returns.
-           */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-#ifdef CONFIG_ARCH_ADDRENV
-          /* Make sure that the address environment for the previously
-           * running task is closed down gracefully (data caches dump,
-           * MMU flushed) and set up the address environment for the new
-           * thread at the head of the ready-to-run list.
-           */
-
-          group_addrenv(nexttcb);
-#endif
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv6-m/arm_blocktask.c 
b/arch/arm/src/armv6-m/arm_blocktask.c
deleted file mode 100644
index fb8999b..0000000
--- a/arch/arm/src/armv6-m/arm_blocktask.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv6-m/arm_blocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_block_task
- *
- * Description:
- *   The currently executing task at the head of the ready to run list must
- *   be stopped.  Save its context and move it to the inactive list
- *   specified by task_state.
- *
- * Input Parameters:
- *   tcb: Refers to a task in the ready-to-run list (normally the task at
- *     the head of the list).  It must be stopped, its context saved and
- *     moved into one of the waiting task lists.  If it was the task at the
- *     head of the ready-to-run list, then a context switch to the new
- *     ready to run task must be performed.
- *   task_state: Specifies which waiting task list should hold the blocked
- *     task TCB.
- *
- ****************************************************************************/
-
-void up_block_task(struct tcb_s *tcb, tstate_t task_state)
-{
-  struct tcb_s *rtcb = this_task();
-  bool switch_needed;
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_READY_TO_RUN_STATE) &&
-              (tcb->task_state <= LAST_READY_TO_RUN_STATE));
-
-  /* Remove the tcb task from the ready-to-run list.  If we are blocking the
-   * task at the head of the task list (the most likely case), then a
-   * context switch to the next ready-to-run task is needed. In this case,
-   * it should also be true that rtcb == tcb.
-   */
-
-  switch_needed = nxsched_remove_readytorun(tcb);
-
-  /* Add the task to the specified blocked task list */
-
-  nxsched_add_blocked(tcb, (tstate_t)task_state);
-
-  /* If there are any pending tasks, then add them to the ready-to-run
-   * task list now
-   */
-
-  if (g_pendingtasks.head)
-    {
-      switch_needed |= nxsched_merge_pending();
-    }
-
-  /* Now, perform the context switch if one is needed */
-
-  if (switch_needed)
-    {
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv6-m/arm_releasepending.c 
b/arch/arm/src/armv6-m/arm_releasepending.c
deleted file mode 100644
index b2521ea..0000000
--- a/arch/arm/src/armv6-m/arm_releasepending.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv6-m/arm_releasepending.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_release_pending
- *
- * Description:
- *   Release and ready-to-run tasks that have
- *   collected in the pending task list.  This can call a
- *   context switch if a new task is placed at the head of
- *   the ready to run list.
- *
- ****************************************************************************/
-
-void up_release_pending(void)
-{
-  struct tcb_s *rtcb = this_task();
-
-  sinfo("From TCB=%p\n", rtcb);
-
-  /* Merge the g_pendingtasks list into the ready-to-run task list */
-
-  if (nxsched_merge_pending())
-    {
-      /* The currently active task has changed!  We will need to
-       * switch contexts.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we operating in interrupt context? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently. Just copy the
-           * CURRENT_REGS into the OLD rtcb.
-           */
-
-           arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv6-m/arm_reprioritizertr.c 
b/arch/arm/src/armv6-m/arm_reprioritizertr.c
deleted file mode 100644
index c545a00..0000000
--- a/arch/arm/src/armv6-m/arm_reprioritizertr.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv6-m/arm_reprioritizertr.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- *   Called when the priority of a running or
- *   ready-to-run task changes and the reprioritization will
- *   cause a context switch.  Two cases:
- *
- *   1) The priority of the currently running task drops and the next
- *      task in the ready to run list has priority.
- *   2) An idle, ready to run task's priority has been raised above the
- *      priority of the current, running task and it now has the priority.
- *
- * Input Parameters:
- *   tcb: The TCB of the task that has been reprioritized
- *   priority: The new task priority
- *
- ****************************************************************************/
-
-void up_reprioritize_rtr(struct tcb_s *tcb, uint8_t priority)
-{
-  /* Verify that the caller is sane */
-
-  if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
-      tcb->task_state > LAST_READY_TO_RUN_STATE
-#if SCHED_PRIORITY_MIN > 0
-      || priority < SCHED_PRIORITY_MIN
-#endif
-#if SCHED_PRIORITY_MAX < UINT8_MAX
-      || priority > SCHED_PRIORITY_MAX
-#endif
-    )
-    {
-       DEBUGPANIC();
-    }
-  else
-    {
-      struct tcb_s *rtcb = this_task();
-      bool switch_needed;
-
-      sinfo("TCB=%p PRI=%d\n", tcb, priority);
-
-      /* Remove the tcb task from the ready-to-run list.
-       * nxsched_remove_readytorun will return true if we just removed the
-       * head of the ready to run list.
-       */
-
-      switch_needed = nxsched_remove_readytorun(tcb);
-
-      /* Setup up the new task priority */
-
-      tcb->sched_priority = (uint8_t)priority;
-
-      /* Return the task to the ready-to-run task list.
-       * nxsched_add_readytorun() will return true if the task was added to
-       * the head of ready-to-run list.  We will need to perform a context
-       * switch only if the EXCLUSIVE or of the two calls is non-zero (i.e.,
-       * one and only one the calls changes the head of the ready-to-run
-       * list).
-       */
-
-      switch_needed ^= nxsched_add_readytorun(tcb);
-
-      /* Now, perform the context switch if one is needed (i.e. if the head
-       * of the ready-to-run list is no longer the same).
-       */
-
-      if (switch_needed)
-        {
-          /* If we are going to do a context switch, then now is the right
-           * time to add any pending tasks back into the ready-to-run list.
-           */
-
-          if (g_pendingtasks.head)
-            {
-              nxsched_merge_pending();
-            }
-
-          /* Update scheduler parameters */
-
-          nxsched_suspend_scheduler(rtcb);
-
-          /* Are we in an interrupt handler? */
-
-          if (CURRENT_REGS)
-            {
-              /* Yes, then we have to do things differently.
-               * Just copy the CURRENT_REGS into the OLD rtcb.
-               */
-
-               arm_savestate(rtcb->xcp.regs);
-
-              /* Restore the exception context of the rtcb at the (new) head
-               * of the ready-to-run task list.
-               */
-
-              rtcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(rtcb);
-
-              /* Then switch contexts */
-
-              arm_restorestate(rtcb->xcp.regs);
-            }
-
-          /* No, then we will need to perform the user context switch */
-
-          else
-            {
-              struct tcb_s *nexttcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(nexttcb);
-
-              /* Switch context to the context of the task at the head of the
-               * ready to run list.
-               */
-
-              arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-              /* arm_switchcontext forces a context switch to the task at the
-               * head of the ready-to-run list.  It does not 'return' in the
-               * normal sense.  When it does return, it is because the
-               * blocked task is again ready to run and has execution
-               * priority.
-               */
-            }
-        }
-    }
-}
diff --git a/arch/arm/src/armv6-m/arm_unblocktask.c 
b/arch/arm/src/armv6-m/arm_unblocktask.c
deleted file mode 100644
index 2d50cfe..0000000
--- a/arch/arm/src/armv6-m/arm_unblocktask.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv6-m/arm_unblocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "clock/clock.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_unblock_task
- *
- * Description:
- *   A task is currently in an inactive task list but has been prepped to
- *   execute.  Move the TCB to the ready-to-run list, restore its context,
- *   and start execution.
- *
- * Input Parameters:
- *   tcb: Refers to the tcb to be unblocked.  This tcb is in one of the
- *     waiting tasks lists.  It must be moved to the ready-to-run list and,
- *     if it is the highest priority ready to run task, executed.
- *
- ****************************************************************************/
-
-void up_unblock_task(struct tcb_s *tcb)
-{
-  struct tcb_s *rtcb = this_task();
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_BLOCKED_STATE) &&
-              (tcb->task_state <= LAST_BLOCKED_STATE));
-
-  /* Remove the task from the blocked task list */
-
-  nxsched_remove_blocked(tcb);
-
-  /* Add the task in the correct location in the prioritized
-   * ready-to-run task list
-   */
-
-  if (nxsched_add_readytorun(tcb))
-    {
-      /* The currently active task has changed! We need to do
-       * a context switch to the new task.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-a/arm_blocktask.c 
b/arch/arm/src/armv7-a/arm_blocktask.c
deleted file mode 100644
index 5c22093..0000000
--- a/arch/arm/src/armv7-a/arm_blocktask.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-a/arm_blocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_block_task
- *
- * Description:
- *   The currently executing task at the head of the ready to run list must
- *   be stopped.  Save its context and move it to the inactive list
- *   specified by task_state.
- *
- * Input Parameters:
- *   tcb: Refers to a task in the ready-to-run list (normally the task at
- *     the head of the list).  It must be stopped, its context saved and
- *     moved into one of the waiting task lists.  If it was the task at the
- *     head of the ready-to-run list, then a context switch to the new
- *     ready to run task must be performed.
- *   task_state: Specifies which waiting task list should hold the blocked
- *     task TCB.
- *
- ****************************************************************************/
-
-void up_block_task(struct tcb_s *tcb, tstate_t task_state)
-{
-  struct tcb_s *rtcb = this_task();
-  bool switch_needed;
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_READY_TO_RUN_STATE) &&
-              (tcb->task_state <= LAST_READY_TO_RUN_STATE));
-
-  /* Remove the tcb task from the ready-to-run list.  If we are blocking the
-   * task at the head of the task list (the most likely case), then a
-   * context switch to the next ready-to-run task is needed. In this case,
-   * it should also be true that rtcb == tcb.
-   */
-
-  switch_needed = nxsched_remove_readytorun(tcb);
-
-  /* Add the task to the specified blocked task list */
-
-  nxsched_add_blocked(tcb, (tstate_t)task_state);
-
-  /* If there are any pending tasks, then add them to the ready-to-run
-   * task list now
-   */
-
-  if (g_pendingtasks.head)
-    {
-      switch_needed |= nxsched_merge_pending();
-    }
-
-  /* Now, perform the context switch if one is needed */
-
-  if (switch_needed)
-    {
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts.  Any necessary address environment
-           * changes will be made when the interrupt returns.
-           */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-#ifdef CONFIG_ARCH_ADDRENV
-          /* Make sure that the address environment for the previously
-           * running task is closed down gracefully (data caches dump,
-           * MMU flushed) and set up the address environment for the new
-           * thread at the head of the ready-to-run list.
-           */
-
-          group_addrenv(nexttcb);
-#endif
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-a/arm_reprioritizertr.c 
b/arch/arm/src/armv7-a/arm_reprioritizertr.c
deleted file mode 100644
index 985fe71..0000000
--- a/arch/arm/src/armv7-a/arm_reprioritizertr.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-a/arm_reprioritizertr.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- *   Called when the priority of a running or
- *   ready-to-run task changes and the reprioritization will
- *   cause a context switch.  Two cases:
- *
- *   1) The priority of the currently running task drops and the next
- *      task in the ready to run list has priority.
- *   2) An idle, ready to run task's priority has been raised above the
- *      priority of the current, running task and it now has the priority.
- *
- * Input Parameters:
- *   tcb: The TCB of the task that has been reprioritized
- *   priority: The new task priority
- *
- ****************************************************************************/
-
-void up_reprioritize_rtr(struct tcb_s *tcb, uint8_t priority)
-{
-  /* Verify that the caller is sane */
-
-  if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
-      tcb->task_state > LAST_READY_TO_RUN_STATE
-#if SCHED_PRIORITY_MIN > 0
-      || priority < SCHED_PRIORITY_MIN
-#endif
-#if SCHED_PRIORITY_MAX < UINT8_MAX
-      || priority > SCHED_PRIORITY_MAX
-#endif
-    )
-    {
-       DEBUGPANIC();
-    }
-  else
-    {
-      struct tcb_s *rtcb = this_task();
-      bool switch_needed;
-
-      sinfo("TCB=%p PRI=%d\n", tcb, priority);
-
-      /* Remove the tcb task from the ready-to-run list.
-       * nxsched_remove_readytorun will return true if we just
-       * remove the head of the ready to run list.
-       */
-
-      switch_needed = nxsched_remove_readytorun(tcb);
-
-      /* Setup up the new task priority */
-
-      tcb->sched_priority = (uint8_t)priority;
-
-      /* Return the task to the specified blocked task list.
-       * nxsched_add_readytorun will return true if the task was
-       * added to the new list.  We will need to perform a context
-       * switch only if the EXCLUSIVE or of the two calls is non-zero
-       * (i.e., one and only one the calls changes the head of the
-       * ready-to-run list).
-       */
-
-      switch_needed ^= nxsched_add_readytorun(tcb);
-
-      /* Now, perform the context switch if one is needed */
-
-      if (switch_needed)
-        {
-          /* If we are going to do a context switch, then now is the right
-           * time to add any pending tasks back into the ready-to-run list.
-           */
-
-          if (g_pendingtasks.head)
-            {
-              nxsched_merge_pending();
-            }
-
-          /* Update scheduler parameters */
-
-          nxsched_suspend_scheduler(rtcb);
-
-          /* Are we in an interrupt handler? */
-
-          if (CURRENT_REGS)
-            {
-              /* Yes, then we have to do things differently.
-               * Just copy the CURRENT_REGS into the OLD rtcb.
-               */
-
-               arm_savestate(rtcb->xcp.regs);
-
-              /* Restore the exception context of the rtcb at the (new) head
-               * of the ready-to-run task list.
-               */
-
-              rtcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(rtcb);
-
-              /* Then switch contexts.  Any necessary address environment
-               * changes will be made when the interrupt returns.
-               */
-
-              arm_restorestate(rtcb->xcp.regs);
-            }
-
-          /* No, then we will need to perform the user context switch */
-
-          else
-            {
-              struct tcb_s *nexttcb = this_task();
-
-#ifdef CONFIG_ARCH_ADDRENV
-              /* Make sure that the address environment for the previously
-               * running task is closed down gracefully (data caches dump,
-               * MMU flushed) and set up the address environment for the new
-               * thread at the head of the ready-to-run list.
-               */
-
-              group_addrenv(nexttcb);
-#endif
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(nexttcb);
-
-              /* Switch context to the context of the task at the head of the
-               * ready to run list.
-               */
-
-              arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-              /* arm_switchcontext forces a context switch to the task at the
-               * head of the ready-to-run list.  It does not 'return' in the
-               * normal sense.  When it does return, it is because the
-               * blocked task is again ready to run and has execution
-               * priority.
-               */
-            }
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-a/arm_unblocktask.c 
b/arch/arm/src/armv7-a/arm_unblocktask.c
deleted file mode 100644
index 323c09e..0000000
--- a/arch/arm/src/armv7-a/arm_unblocktask.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-a/arm_unblocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "clock/clock.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_unblock_task
- *
- * Description:
- *   A task is currently in an inactive task list
- *   but has been prepped to execute.  Move the TCB to the
- *   ready-to-run list, restore its context, and start execution.
- *
- * Input Parameters:
- *   tcb: Refers to the tcb to be unblocked.  This tcb is
- *     in one of the waiting tasks lists.  It must be moved to
- *     the ready-to-run list and, if it is the highest priority
- *     ready to run task, executed.
- *
- ****************************************************************************/
-
-void up_unblock_task(struct tcb_s *tcb)
-{
-  struct tcb_s *rtcb = this_task();
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_BLOCKED_STATE) &&
-              (tcb->task_state <= LAST_BLOCKED_STATE));
-
-  /* Remove the task from the blocked task list */
-
-  nxsched_remove_blocked(tcb);
-
-  /* Add the task in the correct location in the prioritized
-   * ready-to-run task list
-   */
-
-  if (nxsched_add_readytorun(tcb))
-    {
-      /* The currently active task has changed! We need to do
-       * a context switch to the new task.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts.  Any necessary address environment
-           * changes will be made when the interrupt returns.
-           */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-#ifdef CONFIG_ARCH_ADDRENV
-          /* Make sure that the address environment for the previously
-           * running task is closed down gracefully (data caches dump,
-           * MMU flushed) and set up the address environment for the new
-           * thread at the head of the ready-to-run list.
-           */
-
-          group_addrenv(nexttcb);
-#endif
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-m/arm_blocktask.c 
b/arch/arm/src/armv7-m/arm_blocktask.c
deleted file mode 100644
index a55b9b9..0000000
--- a/arch/arm/src/armv7-m/arm_blocktask.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-m/arm_blocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_block_task
- *
- * Description:
- *   The currently executing task at the head of the ready to run list must
- *   be stopped.  Save its context and move it to the inactive list
- *   specified by task_state.
- *
- * Input Parameters:
- *   tcb: Refers to a task in the ready-to-run list (normally the task at
- *     the head of the list).  It must be stopped, its context saved and
- *     moved into one of the waiting task lists.  If it was the task at the
- *     head of the ready-to-run list, then a context switch to the new
- *     ready to run task must be performed.
- *   task_state: Specifies which waiting task list should hold the blocked
- *     task TCB.
- *
- ****************************************************************************/
-
-void up_block_task(struct tcb_s *tcb, tstate_t task_state)
-{
-  struct tcb_s *rtcb = this_task();
-  bool switch_needed;
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_READY_TO_RUN_STATE) &&
-              (tcb->task_state <= LAST_READY_TO_RUN_STATE));
-
-  /* Remove the tcb task from the ready-to-run list.  If we are blocking the
-   * task at the head of the task list (the most likely case), then a
-   * context switch to the next ready-to-run task is needed. In this case,
-   * it should also be true that rtcb == tcb.
-   */
-
-  switch_needed = nxsched_remove_readytorun(tcb);
-
-  /* Add the task to the specified blocked task list */
-
-  nxsched_add_blocked(tcb, (tstate_t)task_state);
-
-  /* If there are any pending tasks, then add them to the ready-to-run
-   * task list now
-   */
-
-  if (g_pendingtasks.head)
-    {
-      switch_needed |= nxsched_merge_pending();
-    }
-
-  /* Now, perform the context switch if one is needed */
-
-  if (switch_needed)
-    {
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-m/arm_releasepending.c 
b/arch/arm/src/armv7-m/arm_releasepending.c
deleted file mode 100644
index b4dbf0b..0000000
--- a/arch/arm/src/armv7-m/arm_releasepending.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-m/arm_releasepending.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_release_pending
- *
- * Description:
- *   Release and ready-to-run tasks that have
- *   collected in the pending task list.  This can call a
- *   context switch if a new task is placed at the head of
- *   the ready to run list.
- *
- ****************************************************************************/
-
-void up_release_pending(void)
-{
-  struct tcb_s *rtcb = this_task();
-
-  sinfo("From TCB=%p\n", rtcb);
-
-  /* Merge the g_pendingtasks list into the ready-to-run task list */
-
-#if 0
-  sched_lock();
-#endif
-
-  if (nxsched_merge_pending())
-    {
-      /* The currently active task has changed!  We will need to switch
-       * contexts.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we operating in interrupt context? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently. Just copy the
-           * CURRENT_REGS into the OLD rtcb.
-           */
-
-           arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-m/arm_reprioritizertr.c 
b/arch/arm/src/armv7-m/arm_reprioritizertr.c
deleted file mode 100644
index 4dbe8f2..0000000
--- a/arch/arm/src/armv7-m/arm_reprioritizertr.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-m/arm_reprioritizertr.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- *   Called when the priority of a running or
- *   ready-to-run task changes and the reprioritization will
- *   cause a context switch.  Two cases:
- *
- *   1) The priority of the currently running task drops and the next
- *      task in the ready to run list has priority.
- *   2) An idle, ready to run task's priority has been raised above the
- *      priority of the current, running task and it now has the priority.
- *
- * Input Parameters:
- *   tcb: The TCB of the task that has been reprioritized
- *   priority: The new task priority
- *
- ****************************************************************************/
-
-void up_reprioritize_rtr(struct tcb_s *tcb, uint8_t priority)
-{
-  /* Verify that the caller is sane */
-
-  if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
-      tcb->task_state > LAST_READY_TO_RUN_STATE
-#if SCHED_PRIORITY_MIN > 0
-      || priority < SCHED_PRIORITY_MIN
-#endif
-#if SCHED_PRIORITY_MAX < UINT8_MAX
-      || priority > SCHED_PRIORITY_MAX
-#endif
-    )
-    {
-       DEBUGPANIC();
-    }
-  else
-    {
-      struct tcb_s *rtcb = this_task();
-      bool switch_needed;
-
-      sinfo("TCB=%p PRI=%d\n", tcb, priority);
-
-      /* Remove the tcb task from the ready-to-run list.
-       * nxsched_remove_readytorun will return true if we just removed the
-       * head of the ready to run list.
-       */
-
-      switch_needed = nxsched_remove_readytorun(tcb);
-
-      /* Setup up the new task priority */
-
-      tcb->sched_priority = (uint8_t)priority;
-
-      /* Return the task to the ready-to-run task list.
-       * nxsched_add_readytorun() will return true if the task was added to
-       * the head of ready-to-run list.  We will need to perform a context
-       * switch only if the EXCLUSIVE or of the two calls is non-zero (i.e.,
-       * one and only one the calls changes the head of the ready-to-run
-       * list).
-       */
-
-      switch_needed ^= nxsched_add_readytorun(tcb);
-
-      /* Now, perform the context switch if one is needed (i.e. if the head
-       * of the ready-to-run list is no longer the same).
-       */
-
-      if (switch_needed)
-        {
-          /* If we are going to do a context switch, then now is the right
-           * time to add any pending tasks back into the ready-to-run list.
-           */
-
-          if (g_pendingtasks.head)
-            {
-              nxsched_merge_pending();
-            }
-
-          /* Update scheduler parameters */
-
-          nxsched_suspend_scheduler(rtcb);
-
-          /* Are we in an interrupt handler? */
-
-          if (CURRENT_REGS)
-            {
-              /* Yes, then we have to do things differently.
-               * Just copy the CURRENT_REGS into the OLD rtcb.
-               */
-
-               arm_savestate(rtcb->xcp.regs);
-
-              /* Restore the exception context of the rtcb at the (new) head
-               * of the ready-to-run task list.
-               */
-
-              rtcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(rtcb);
-
-              /* Then switch contexts */
-
-              arm_restorestate(rtcb->xcp.regs);
-            }
-
-          /* No, then we will need to perform the user context switch */
-
-          else
-            {
-              struct tcb_s *nexttcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(nexttcb);
-
-              /* Switch context to the context of the task at the head of the
-               * ready to run list.
-               */
-
-              arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-              /* arm_switchcontext forces a context switch to the task at the
-               * head of the ready-to-run list.  It does not 'return' in the
-               * normal sense.  When it does return, it is because the
-               * blocked task is again ready to run and has execution
-               * priority.
-               */
-            }
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-m/arm_unblocktask.c 
b/arch/arm/src/armv7-m/arm_unblocktask.c
deleted file mode 100644
index 4a96c33..0000000
--- a/arch/arm/src/armv7-m/arm_unblocktask.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-m/arm_unblocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "clock/clock.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_unblock_task
- *
- * Description:
- *   A task is currently in an inactive task list
- *   but has been prepped to execute.  Move the TCB to the
- *   ready-to-run list, restore its context, and start execution.
- *
- * Input Parameters:
- *   tcb: Refers to the tcb to be unblocked.  This tcb is
- *     in one of the waiting tasks lists.  It must be moved to
- *     the ready-to-run list and, if it is the highest priority
- *     ready to run task, executed.
- *
- ****************************************************************************/
-
-void up_unblock_task(struct tcb_s *tcb)
-{
-  struct tcb_s *rtcb = this_task();
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_BLOCKED_STATE) &&
-              (tcb->task_state <= LAST_BLOCKED_STATE));
-
-  /* Remove the task from the blocked task list */
-
-  nxsched_remove_blocked(tcb);
-
-  /* Add the task in the correct location in the prioritized
-   * ready-to-run task list
-   */
-
-  if (nxsched_add_readytorun(tcb))
-    {
-      /* The currently active task has changed! We need to do
-       * a context switch to the new task.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-r/arm_blocktask.c 
b/arch/arm/src/armv7-r/arm_blocktask.c
deleted file mode 100644
index 7e5dacb..0000000
--- a/arch/arm/src/armv7-r/arm_blocktask.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-r/arm_blocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_block_task
- *
- * Description:
- *   The currently executing task at the head of the ready to run list must
- *   be stopped.  Save its context and move it to the inactive list
- *   specified by task_state.
- *
- * Input Parameters:
- *   tcb: Refers to a task in the ready-to-run list (normally the task at
- *     the head of the list).  It must be stopped, its context saved and
- *     moved into one of the waiting task lists.  If it was the task at the
- *     head of the ready-to-run list, then a context switch to the new
- *     ready to run task must be performed.
- *   task_state: Specifies which waiting task list should hold the blocked
- *     task TCB.
- *
- ****************************************************************************/
-
-void up_block_task(struct tcb_s *tcb, tstate_t task_state)
-{
-  struct tcb_s *rtcb = this_task();
-  bool switch_needed;
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_READY_TO_RUN_STATE) &&
-              (tcb->task_state <= LAST_READY_TO_RUN_STATE));
-
-  /* Remove the tcb task from the ready-to-run list.  If we are blocking the
-   * task at the head of the task list (the most likely case), then a
-   * context switch to the next ready-to-run task is needed. In this case,
-   * it should also be true that rtcb == tcb.
-   */
-
-  switch_needed = nxsched_remove_readytorun(tcb);
-
-  /* Add the task to the specified blocked task list */
-
-  nxsched_add_blocked(tcb, (tstate_t)task_state);
-
-  /* If there are any pending tasks, then add them to the ready-to-run
-   * task list now
-   */
-
-  if (g_pendingtasks.head)
-    {
-      switch_needed |= nxsched_merge_pending();
-    }
-
-  /* Now, perform the context switch if one is needed */
-
-  if (switch_needed)
-    {
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts. */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-r/arm_releasepending.c 
b/arch/arm/src/armv7-r/arm_releasepending.c
deleted file mode 100644
index 43b78f2..0000000
--- a/arch/arm/src/armv7-r/arm_releasepending.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-r/arm_releasepending.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_release_pending
- *
- * Description:
- *   Release and ready-to-run tasks that have
- *   collected in the pending task list.  This can call a
- *   context switch if a new task is placed at the head of
- *   the ready to run list.
- *
- ****************************************************************************/
-
-void up_release_pending(void)
-{
-  struct tcb_s *rtcb = this_task();
-
-  sinfo("From TCB=%p\n", rtcb);
-
-  /* Merge the g_pendingtasks list into the ready-to-run task list */
-
-  if (nxsched_merge_pending())
-    {
-      /* The currently active task has changed!  We will need to
-       * switch contexts.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we operating in interrupt context? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-           arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts.  Any necessary address environment
-           * changes will be made when the interrupt returns.
-           */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-r/arm_reprioritizertr.c 
b/arch/arm/src/armv7-r/arm_reprioritizertr.c
deleted file mode 100644
index 6852177..0000000
--- a/arch/arm/src/armv7-r/arm_reprioritizertr.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-r/arm_reprioritizertr.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- *   Called when the priority of a running or
- *   ready-to-run task changes and the reprioritization will
- *   cause a context switch.  Two cases:
- *
- *   1) The priority of the currently running task drops and the next
- *      task in the ready to run list has priority.
- *   2) An idle, ready to run task's priority has been raised above the
- *      priority of the current, running task and it now has the priority.
- *
- * Input Parameters:
- *   tcb: The TCB of the task that has been reprioritized
- *   priority: The new task priority
- *
- ****************************************************************************/
-
-void up_reprioritize_rtr(struct tcb_s *tcb, uint8_t priority)
-{
-  /* Verify that the caller is sane */
-
-  if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
-      tcb->task_state > LAST_READY_TO_RUN_STATE
-#if SCHED_PRIORITY_MIN > 0
-      || priority < SCHED_PRIORITY_MIN
-#endif
-#if SCHED_PRIORITY_MAX < UINT8_MAX
-      || priority > SCHED_PRIORITY_MAX
-#endif
-    )
-    {
-       DEBUGPANIC();
-    }
-  else
-    {
-      struct tcb_s *rtcb = this_task();
-      bool switch_needed;
-
-      sinfo("TCB=%p PRI=%d\n", tcb, priority);
-
-      /* Remove the tcb task from the ready-to-run list.
-       * nxsched_remove_readytorun will return true if we just
-       * remove the head of the ready to run list.
-       */
-
-      switch_needed = nxsched_remove_readytorun(tcb);
-
-      /* Setup up the new task priority */
-
-      tcb->sched_priority = (uint8_t)priority;
-
-      /* Return the task to the specified blocked task list.
-       * nxsched_add_readytorun will return true if the task was
-       * added to the new list.  We will need to perform a context
-       * switch only if the EXCLUSIVE or of the two calls is non-zero
-       * (i.e., one and only one the calls changes the head of the
-       * ready-to-run list).
-       */
-
-      switch_needed ^= nxsched_add_readytorun(tcb);
-
-      /* Now, perform the context switch if one is needed */
-
-      if (switch_needed)
-        {
-          /* If we are going to do a context switch, then now is the right
-           * time to add any pending tasks back into the ready-to-run list.
-           */
-
-          if (g_pendingtasks.head)
-            {
-              nxsched_merge_pending();
-            }
-
-          /* Update scheduler parameters */
-
-          nxsched_suspend_scheduler(rtcb);
-
-          /* Are we in an interrupt handler? */
-
-          if (CURRENT_REGS)
-            {
-              /* Yes, then we have to do things differently.
-               * Just copy the CURRENT_REGS into the OLD rtcb.
-               */
-
-               arm_savestate(rtcb->xcp.regs);
-
-              /* Restore the exception context of the rtcb at the (new) head
-               * of the ready-to-run task list.
-               */
-
-              rtcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(rtcb);
-
-              /* Then switch contexts.  Any necessary address environment
-               * changes will be made when the interrupt returns.
-               */
-
-              arm_restorestate(rtcb->xcp.regs);
-            }
-
-          /* No, then we will need to perform the user context switch */
-
-          else
-            {
-              struct tcb_s *nexttcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(nexttcb);
-
-              /* Switch context to the context of the task at the head of the
-               * ready to run list.
-               */
-
-              arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-              /* arm_switchcontext forces a context switch to the task at the
-               * head of the ready-to-run list.  It does not 'return' in the
-               * normal sense.  When it does return, it is because the
-               * blocked task is again ready to run and has execution
-               * priority.
-               */
-            }
-        }
-    }
-}
diff --git a/arch/arm/src/armv7-r/arm_unblocktask.c 
b/arch/arm/src/armv7-r/arm_unblocktask.c
deleted file mode 100644
index d10d7a2..0000000
--- a/arch/arm/src/armv7-r/arm_unblocktask.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv7-r/arm_unblocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "group/group.h"
-#include "clock/clock.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_unblock_task
- *
- * Description:
- *   A task is currently in an inactive task list
- *   but has been prepped to execute.  Move the TCB to the
- *   ready-to-run list, restore its context, and start execution.
- *
- * Input Parameters:
- *   tcb: Refers to the tcb to be unblocked.  This tcb is
- *     in one of the waiting tasks lists.  It must be moved to
- *     the ready-to-run list and, if it is the highest priority
- *     ready to run task, executed.
- *
- ****************************************************************************/
-
-void up_unblock_task(struct tcb_s *tcb)
-{
-  struct tcb_s *rtcb = this_task();
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_BLOCKED_STATE) &&
-              (tcb->task_state <= LAST_BLOCKED_STATE));
-
-  /* Remove the task from the blocked task list */
-
-  nxsched_remove_blocked(tcb);
-
-  /* Add the task in the correct location in the prioritized
-   * ready-to-run task list
-   */
-
-  if (nxsched_add_readytorun(tcb))
-    {
-      /* The currently active task has changed! We need to do
-       * a context switch to the new task.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts.  Any necessary address environment
-           * changes will be made when the interrupt returns.
-           */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv8-m/arm_blocktask.c 
b/arch/arm/src/armv8-m/arm_blocktask.c
deleted file mode 100644
index 30a1e5a..0000000
--- a/arch/arm/src/armv8-m/arm_blocktask.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv8-m/arm_blocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_block_task
- *
- * Description:
- *   The currently executing task at the head of the ready to run list must
- *   be stopped.  Save its context and move it to the inactive list
- *   specified by task_state.
- *
- * Input Parameters:
- *   tcb: Refers to a task in the ready-to-run list (normally the task at
- *     the head of the list).  It must be stopped, its context saved and
- *     moved into one of the waiting task lists.  If it was the task at the
- *     head of the ready-to-run list, then a context switch to the new
- *     ready to run task must be performed.
- *   task_state: Specifies which waiting task list should hold the blocked
- *     task TCB.
- *
- ****************************************************************************/
-
-void up_block_task(struct tcb_s *tcb, tstate_t task_state)
-{
-  struct tcb_s *rtcb = this_task();
-  bool switch_needed;
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_READY_TO_RUN_STATE) &&
-              (tcb->task_state <= LAST_READY_TO_RUN_STATE));
-
-  /* Remove the tcb task from the ready-to-run list.  If we are blocking the
-   * task at the head of the task list (the most likely case), then a
-   * context switch to the next ready-to-run task is needed. In this case,
-   * it should also be true that rtcb == tcb.
-   */
-
-  switch_needed = nxsched_remove_readytorun(tcb);
-
-  /* Add the task to the specified blocked task list */
-
-  nxsched_add_blocked(tcb, (tstate_t)task_state);
-
-  /* If there are any pending tasks, then add them to the ready-to-run
-   * task list now
-   */
-
-  if (g_pendingtasks.head)
-    {
-      switch_needed |= nxsched_merge_pending();
-    }
-
-  /* Now, perform the context switch if one is needed */
-
-  if (switch_needed)
-    {
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Reset scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv8-m/arm_releasepending.c 
b/arch/arm/src/armv8-m/arm_releasepending.c
deleted file mode 100644
index 1574a2e..0000000
--- a/arch/arm/src/armv8-m/arm_releasepending.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv8-m/arm_releasepending.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_release_pending
- *
- * Description:
- *   Release and ready-to-run tasks that have
- *   collected in the pending task list.  This can call a
- *   context switch if a new task is placed at the head of
- *   the ready to run list.
- *
- ****************************************************************************/
-
-void up_release_pending(void)
-{
-  struct tcb_s *rtcb = this_task();
-
-  sinfo("From TCB=%p\n", rtcb);
-
-  /* Merge the g_pendingtasks list into the ready-to-run task list */
-
-#if 0
-  sched_lock();
-#endif
-
-  if (nxsched_merge_pending())
-    {
-      /* The currently active task has changed!  We will need to switch
-       * contexts.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we operating in interrupt context? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently. Just copy the
-           * CURRENT_REGS into the OLD rtcb.
-           */
-
-           arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/armv8-m/arm_reprioritizertr.c 
b/arch/arm/src/armv8-m/arm_reprioritizertr.c
deleted file mode 100644
index e7f0a22..0000000
--- a/arch/arm/src/armv8-m/arm_reprioritizertr.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv8-m/arm_reprioritizertr.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_reprioritize_rtr
- *
- * Description:
- *   Called when the priority of a running or
- *   ready-to-run task changes and the reprioritization will
- *   cause a context switch.  Two cases:
- *
- *   1) The priority of the currently running task drops and the next
- *      task in the ready to run list has priority.
- *   2) An idle, ready to run task's priority has been raised above the
- *      priority of the current, running task and it now has the priority.
- *
- * Input Parameters:
- *   tcb: The TCB of the task that has been reprioritized
- *   priority: The new task priority
- *
- ****************************************************************************/
-
-void up_reprioritize_rtr(struct tcb_s *tcb, uint8_t priority)
-{
-  /* Verify that the caller is sane */
-
-  if (tcb->task_state < FIRST_READY_TO_RUN_STATE ||
-      tcb->task_state > LAST_READY_TO_RUN_STATE
-#if SCHED_PRIORITY_MIN > 0
-      || priority < SCHED_PRIORITY_MIN
-#endif
-#if SCHED_PRIORITY_MAX < UINT8_MAX
-      || priority > SCHED_PRIORITY_MAX
-#endif
-    )
-    {
-       DEBUGPANIC();
-    }
-  else
-    {
-      struct tcb_s *rtcb = this_task();
-      bool switch_needed;
-
-      sinfo("TCB=%p PRI=%d\n", tcb, priority);
-
-      /* Remove the tcb task from the ready-to-run list.
-       * nxsched_remove_readytorun() will return true if we just removed the
-       * head of the ready to run list.
-       */
-
-      switch_needed = nxsched_remove_readytorun(tcb);
-
-      /* Setup up the new task priority */
-
-      tcb->sched_priority = (uint8_t)priority;
-
-      /* Return the task to the ready-to-run task list.
-       * nxsched_add_readytorun() will return true if the task was added to
-       * the head of ready-to-run list.  We will need to perform a context
-       * switch only if the EXCLUSIVE or of the two calls is non-zero (i.e.,
-       * one and only one the calls changes the head of the ready-to-run
-       * list).
-       */
-
-      switch_needed ^= nxsched_add_readytorun(tcb);
-
-      /* Now, perform the context switch if one is needed (i.e. if the head
-       * of the ready-to-run list is no longer the same).
-       */
-
-      if (switch_needed)
-        {
-          /* If we are going to do a context switch, then now is the right
-           * time to add any pending tasks back into the ready-to-run list.
-           */
-
-          if (g_pendingtasks.head)
-            {
-              nxsched_merge_pending();
-            }
-
-          /* Update scheduler parameters */
-
-          nxsched_suspend_scheduler(rtcb);
-
-          /* Are we in an interrupt handler? */
-
-          if (CURRENT_REGS)
-            {
-              /* Yes, then we have to do things differently.
-               * Just copy the CURRENT_REGS into the OLD rtcb.
-               */
-
-               arm_savestate(rtcb->xcp.regs);
-
-              /* Restore the exception context of the rtcb at the (new) head
-               * of the ready-to-run task list.
-               */
-
-              rtcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(rtcb);
-
-              /* Then switch contexts */
-
-              arm_restorestate(rtcb->xcp.regs);
-            }
-
-          /* No, then we will need to perform the user context switch */
-
-          else
-            {
-              struct tcb_s *nexttcb = this_task();
-
-              /* Update scheduler parameters */
-
-              nxsched_resume_scheduler(nexttcb);
-
-              /* Switch context to the context of the task at the head of the
-               * ready to run list.
-               */
-
-              arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-              /* arm_switchcontext forces a context switch to the task at the
-               * head of the ready-to-run list.  It does not 'return' in the
-               * normal sense.  When it does return, it is because the
-               * blocked task is again ready to run and has execution
-               * priority.
-               */
-            }
-        }
-    }
-}
diff --git a/arch/arm/src/armv8-m/arm_unblocktask.c 
b/arch/arm/src/armv8-m/arm_unblocktask.c
deleted file mode 100644
index 2af7852..0000000
--- a/arch/arm/src/armv8-m/arm_unblocktask.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/****************************************************************************
- * arch/arm/src/armv8-m/arm_unblocktask.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sched.h>
-#include <assert.h>
-#include <debug.h>
-#include <nuttx/arch.h>
-#include <nuttx/sched.h>
-
-#include "sched/sched.h"
-#include "clock/clock.h"
-#include "arm_internal.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: up_unblock_task
- *
- * Description:
- *   A task is currently in an inactive task list
- *   but has been prepped to execute.  Move the TCB to the
- *   ready-to-run list, restore its context, and start execution.
- *
- * Input Parameters:
- *   tcb: Refers to the tcb to be unblocked.  This tcb is
- *     in one of the waiting tasks lists.  It must be moved to
- *     the ready-to-run list and, if it is the highest priority
- *     ready to run task, executed.
- *
- ****************************************************************************/
-
-void up_unblock_task(struct tcb_s *tcb)
-{
-  struct tcb_s *rtcb = this_task();
-
-  /* Verify that the context switch can be performed */
-
-  DEBUGASSERT((tcb->task_state >= FIRST_BLOCKED_STATE) &&
-              (tcb->task_state <= LAST_BLOCKED_STATE));
-
-  /* Remove the task from the blocked task list */
-
-  nxsched_remove_blocked(tcb);
-
-  /* Add the task in the correct location in the prioritized
-   * ready-to-run task list
-   */
-
-  if (nxsched_add_readytorun(tcb))
-    {
-      /* The currently active task has changed! We need to do
-       * a context switch to the new task.
-       */
-
-      /* Update scheduler parameters */
-
-      nxsched_suspend_scheduler(rtcb);
-
-      /* Are we in an interrupt handler? */
-
-      if (CURRENT_REGS)
-        {
-          /* Yes, then we have to do things differently.
-           * Just copy the CURRENT_REGS into the OLD rtcb.
-           */
-
-          arm_savestate(rtcb->xcp.regs);
-
-          /* Restore the exception context of the rtcb at the (new) head
-           * of the ready-to-run task list.
-           */
-
-          rtcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(rtcb);
-
-          /* Then switch contexts */
-
-          arm_restorestate(rtcb->xcp.regs);
-        }
-
-      /* No, then we will need to perform the user context switch */
-
-      else
-        {
-          struct tcb_s *nexttcb = this_task();
-
-          /* Update scheduler parameters */
-
-          nxsched_resume_scheduler(nexttcb);
-
-          /* Switch context to the context of the task at the head of the
-           * ready to run list.
-           */
-
-          arm_switchcontext(rtcb->xcp.regs, nexttcb->xcp.regs);
-
-          /* arm_switchcontext forces a context switch to the task at the
-           * head of the ready-to-run list.  It does not 'return' in the
-           * normal sense.  When it does return, it is because the blocked
-           * task is again ready to run and has execution priority.
-           */
-        }
-    }
-}
diff --git a/arch/arm/src/arm/arm_blocktask.c 
b/arch/arm/src/common/arm_blocktask.c
similarity index 99%
rename from arch/arm/src/arm/arm_blocktask.c
rename to arch/arm/src/common/arm_blocktask.c
index af41372..6187b85 100644
--- a/arch/arm/src/arm/arm_blocktask.c
+++ b/arch/arm/src/common/arm_blocktask.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/arm/arm_blocktask.c
+ * arch/arm/src/common/arm_blocktask.c
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
diff --git a/arch/arm/src/armv7-a/arm_releasepending.c 
b/arch/arm/src/common/arm_releasepending.c
similarity index 98%
rename from arch/arm/src/armv7-a/arm_releasepending.c
rename to arch/arm/src/common/arm_releasepending.c
index 7eac444..c4b3646 100644
--- a/arch/arm/src/armv7-a/arm_releasepending.c
+++ b/arch/arm/src/common/arm_releasepending.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/armv7-a/arm_releasepending.c
+ * arch/arm/src/common/arm_releasepending.c
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
diff --git a/arch/arm/src/arm/arm_reprioritizertr.c 
b/arch/arm/src/common/arm_reprioritizertr.c
similarity index 99%
rename from arch/arm/src/arm/arm_reprioritizertr.c
rename to arch/arm/src/common/arm_reprioritizertr.c
index d916322..054f03b 100644
--- a/arch/arm/src/arm/arm_reprioritizertr.c
+++ b/arch/arm/src/common/arm_reprioritizertr.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/arm/arm_reprioritizertr.c
+ * arch/arm/src/common/arm_reprioritizertr.c
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
diff --git a/arch/arm/src/arm/arm_unblocktask.c 
b/arch/arm/src/common/arm_unblocktask.c
similarity index 99%
rename from arch/arm/src/arm/arm_unblocktask.c
rename to arch/arm/src/common/arm_unblocktask.c
index e15f35d..86d96e0 100644
--- a/arch/arm/src/arm/arm_unblocktask.c
+++ b/arch/arm/src/common/arm_unblocktask.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * arch/arm/src/arm/arm_unblocktask.c
+ * arch/arm/src/common/arm_unblocktask.c
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with

Reply via email to