Remove tickless idle mode dependency with include v task suspend (#422)

* Fix Remove tickless idle feature dependency with INCLUDE_vTaskSuspend
* fix unused variable warning
* Fix CI fomatting check

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Authored-by: pramithkv <pramit@lifesignals.com>
diff --git a/include/FreeRTOS.h b/include/FreeRTOS.h
index fc4d363..e79b025 100644
--- a/include/FreeRTOS.h
+++ b/include/FreeRTOS.h
@@ -924,12 +924,6 @@
 #endif

 

 /* Sanity check the configuration. */

-#if ( configUSE_TICKLESS_IDLE != 0 )

-    #if ( INCLUDE_vTaskSuspend != 1 )

-        #error INCLUDE_vTaskSuspend must be set to 1 if configUSE_TICKLESS_IDLE is not set to 0

-    #endif /* INCLUDE_vTaskSuspend */

-#endif /* configUSE_TICKLESS_IDLE */

-

 #if ( ( configSUPPORT_STATIC_ALLOCATION == 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 0 ) )

     #error configSUPPORT_STATIC_ALLOCATION and configSUPPORT_DYNAMIC_ALLOCATION cannot both be 0, but can both be 1.

 #endif

diff --git a/include/task.h b/include/task.h
index ec684c4..4045f10 100644
--- a/include/task.h
+++ b/include/task.h
@@ -167,9 +167,11 @@
 /* Possible return values for eTaskConfirmSleepModeStatus(). */
 typedef enum
 {
-    eAbortSleep = 0,       /* A task has been made ready or a context switch pended since portSUPPRESS_TICKS_AND_SLEEP() was called - abort entering a sleep mode. */
-    eStandardSleep,        /* Enter a sleep mode that will not last any longer than the expected idle time. */
-    eNoTasksWaitingTimeout /* No tasks are waiting for a timeout so it is safe to enter a sleep mode that can only be exited by an external interrupt. */
+    eAbortSleep = 0,           /* A task has been made ready or a context switch pended since portSUPPRESS_TICKS_AND_SLEEP() was called - abort entering a sleep mode. */
+    eStandardSleep,            /* Enter a sleep mode that will not last any longer than the expected idle time. */
+    #if ( INCLUDE_vTaskSuspend == 1 )
+        eNoTasksWaitingTimeout /* No tasks are waiting for a timeout so it is safe to enter a sleep mode that can only be exited by an external interrupt. */
+    #endif /* INCLUDE_vTaskSuspend */
 } eSleepModeStatus;
 
 /**
diff --git a/tasks.c b/tasks.c
index eff0eff..de70417 100644
--- a/tasks.c
+++ b/tasks.c
@@ -3529,8 +3529,11 @@
 

     eSleepModeStatus eTaskConfirmSleepModeStatus( void )

     {

-        /* The idle task exists in addition to the application tasks. */

-        const UBaseType_t uxNonApplicationTasks = 1;

+        #if ( INCLUDE_vTaskSuspend == 1 )

+            /* The idle task exists in addition to the application tasks. */

+            const UBaseType_t uxNonApplicationTasks = 1;

+        #endif /* INCLUDE_vTaskSuspend */

+

         eSleepModeStatus eReturn = eStandardSleep;

 

         /* This function must be called from a critical section. */

@@ -3551,20 +3554,20 @@
              * because the scheduler is suspended. */

             eReturn = eAbortSleep;

         }

-        else

-        {

-            /* If all the tasks are in the suspended list (which might mean they

-             * have an infinite block time rather than actually being suspended)

-             * then it is safe to turn all clocks off and just wait for external

-             * interrupts. */

-            if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == ( uxCurrentNumberOfTasks - uxNonApplicationTasks ) )

+

+        #if ( INCLUDE_vTaskSuspend == 1 )

+            else if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == ( uxCurrentNumberOfTasks - uxNonApplicationTasks ) )

             {

+                /* If all the tasks are in the suspended list (which might mean they

+                 * have an infinite block time rather than actually being suspended)

+                 * then it is safe to turn all clocks off and just wait for external

+                 * interrupts. */

                 eReturn = eNoTasksWaitingTimeout;

             }

-            else

-            {

-                mtCOVERAGE_TEST_MARKER();

-            }

+        #endif /* INCLUDE_vTaskSuspend */

+        else

+        {

+            mtCOVERAGE_TEST_MARKER();

         }

 

         return eReturn;