Add FatFS library to the Webserver project, extend the HTTP server so that it now...
[pub/USBasp.git] / LUFA / Scheduler / Scheduler.h
index 1ef477c..f71736f 100644 (file)
@@ -1,21 +1,21 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
 \r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
  *\r
  *  Simple round-robbin cooperative scheduler for use in basic projects where non real-time tasks need\r
  *  to be executed. Each task is executed in sequence, and can be enabled or disabled individually or as a group.\r
  *\r
  *  Simple round-robbin cooperative scheduler for use in basic projects where non real-time tasks need\r
  *  to be executed. Each task is executed in sequence, and can be enabled or disabled individually or as a group.\r
+ *\r
+ *  \deprecated This module is deprecated and will be removed in a future library release.\r
  */\r
  \r
 /** @defgroup Group_Scheduler Simple Task Scheduler - LUFA/Scheduler/Scheduler.h\r
  *\r
  */\r
  \r
 /** @defgroup Group_Scheduler Simple Task Scheduler - LUFA/Scheduler/Scheduler.h\r
  *\r
+ *  \deprecated This module is deprecated and will be removed in a future library release.\r
+ *\r
  *  \section Sec_Dependencies Module Source Dependencies\r
  *  The following files must be built with any user project that uses this module:\r
  *    - LUFA/Scheduler/Scheduler.c\r
  *  \section Sec_Dependencies Module Source Dependencies\r
  *  The following files must be built with any user project that uses this module:\r
  *    - LUFA/Scheduler/Scheduler.c\r
@@ -55,8 +59,8 @@
  *      \r
  *      TASK_LIST\r
  *      {\r
  *      \r
  *      TASK_LIST\r
  *      {\r
- *             { Task: MyTask1, TaskStatus: TASK_RUN, GroupID: 1  },\r
- *             { Task: MyTask2, TaskStatus: TASK_RUN, GroupID: 1  },\r
+ *             { .Task = MyTask1, .TaskStatus = TASK_RUN, .GroupID = 1  },\r
+ *             { .Task = MyTask2, .TaskStatus = TASK_RUN, .GroupID = 1  },\r
  *      }\r
  *\r
  *      int main(void)\r
  *      }\r
  *\r
  *      int main(void)\r
                         *  \code\r
                         *      TASK_LIST\r
                         *      {\r
                         *  \code\r
                         *      TASK_LIST\r
                         *      {\r
-                        *           { Task: MyTask1, TaskStatus: TASK_RUN, GroupID: 1 },\r
+                        *           { .Task = MyTask1, .TaskStatus = TASK_RUN, .GroupID = 1 },\r
                         *           // More task entries here\r
                         *      }\r
                         *  \endcode\r
                         *           // More task entries here\r
                         *      }\r
                         *  \endcode\r
                        /** Resets the delay counter value to the current tick count. This should be called to reset the period\r
                         *  for a delay in a task which is dependant on the current tick value.\r
                         *\r
                        /** Resets the delay counter value to the current tick count. This should be called to reset the period\r
                         *  for a delay in a task which is dependant on the current tick value.\r
                         *\r
-                        *  \param DelayCounter  Counter which is storing the starting tick count for a given delay.\r
+                        *  \param[out] DelayCounter  Counter which is storing the starting tick count for a given delay.\r
                         */\r
                        static inline void Scheduler_ResetDelay(SchedulerDelayCounter_t* const DelayCounter)\r
                                                                ATTR_NON_NULL_PTR_ARG(1) ATTR_ALWAYS_INLINE;\r
                         */\r
                        static inline void Scheduler_ResetDelay(SchedulerDelayCounter_t* const DelayCounter)\r
                                                                ATTR_NON_NULL_PTR_ARG(1) ATTR_ALWAYS_INLINE;\r
                /* Function Prototypes: */\r
                        /** Determines if the given tick delay has elapsed, based on the given .\r
                         *\r
                /* Function Prototypes: */\r
                        /** Determines if the given tick delay has elapsed, based on the given .\r
                         *\r
-                        *  \param Delay         The delay to test for, measured in ticks\r
-                        *  \param DelayCounter  The counter which is storing the starting tick value for the delay\r
+                        *  \param[in] Delay         The delay to test for, measured in ticks\r
+                        *  \param[in] DelayCounter  The counter which is storing the starting tick value for the delay\r
                         *\r
                         *  \return Boolean true if the delay has elapsed, false otherwise\r
                         *\r
                         *\r
                         *  \return Boolean true if the delay has elapsed, false otherwise\r
                         *\r
                        \r
                        /** Sets the task mode for a given task.\r
                         *\r
                        \r
                        /** Sets the task mode for a given task.\r
                         *\r
-                        *  \param Task        Name of the task whose status is to be changed\r
-                        *  \param TaskStatus  New task status for the task (TASK_RUN or TASK_STOP)\r
+                        *  \param[in] Task        Name of the task whose status is to be changed\r
+                        *  \param[in] TaskStatus  New task status for the task (TASK_RUN or TASK_STOP)\r
                         */\r
                        void Scheduler_SetTaskMode(const TaskPtr_t Task, const bool TaskStatus);\r
                        \r
                        /** Sets the task mode for a given task group ID, allowing for an entire group of tasks to have their\r
                         *  statuses changed at once.\r
                         *\r
                         */\r
                        void Scheduler_SetTaskMode(const TaskPtr_t Task, const bool TaskStatus);\r
                        \r
                        /** Sets the task mode for a given task group ID, allowing for an entire group of tasks to have their\r
                         *  statuses changed at once.\r
                         *\r
-                        *  \param GroupID     Value of the task group ID whose status is to be changed\r
-                        *  \param TaskStatus  New task status for tasks in the specified group (TASK_RUN or TASK_STOP)\r
+                        *  \param[in] GroupID     Value of the task group ID whose status is to be changed\r
+                        *  \param[in] TaskStatus  New task status for tasks in the specified group (TASK_RUN or TASK_STOP)\r
                         */\r
                        void Scheduler_SetGroupTaskMode(const uint8_t GroupID, const bool TaskStatus);\r
 \r
                         */\r
                        void Scheduler_SetGroupTaskMode(const uint8_t GroupID, const bool TaskStatus);\r
 \r
                                Scheduler_TotalTasks = TotalTasks;\r
                        }\r
                \r
                                Scheduler_TotalTasks = TotalTasks;\r
                        }\r
                \r
-                       static inline void Scheduler_GoSchedule(const uint8_t TotalTasks) ATTR_NO_RETURN ATTR_ALWAYS_INLINE;\r
+                       static inline void Scheduler_GoSchedule(const uint8_t TotalTasks) ATTR_NO_RETURN ATTR_ALWAYS_INLINE ATTR_DEPRECATED;\r
                        static inline void Scheduler_GoSchedule(const uint8_t TotalTasks)\r
                        {\r
                                Scheduler_InitScheduler(TotalTasks);\r
                        static inline void Scheduler_GoSchedule(const uint8_t TotalTasks)\r
                        {\r
                                Scheduler_InitScheduler(TotalTasks);\r