kernel: preemptive and cooperative scheduler refactoring.
[bertos.git] / bertos / kern / coop.c
index 1b2e1bb9bc42497a193d12e736642f8155b67250..078724b42a8e38095fb93e3c6e226d2e2b5e2d70 100644 (file)
  * invalidate any other reasons why the executable file might be covered by
  * the GNU General Public License.
  *
- * Copyright 2001, 2004, 2008 Develer S.r.l. (http://www.develer.com/)
- * Copyright 1999, 2000, 2001, 2008 Bernie Innocenti <bernie@codewiz.org>
- * -->
- *
- * \brief Simple cooperative multitasking scheduler.
- *
- * \version $Id$
- * \author Bernie Innocenti <bernie@codewiz.org>
- * \author Stefano Fedrigo <aleph@develer.com>
- */
-
-#include "proc_p.h"
-#include "proc.h"
-
-// Log settings for cfg/log.h.
-#define LOG_LEVEL   KERN_LOG_LEVEL
-#define LOG_FORMAT  KERN_LOG_FORMAT
-#include <cfg/log.h>
-
-#include <cpu/irq.h>
-#include <cpu/types.h>
-#include <cpu/attr.h>
-#include <cpu/frame.h>
-
-/**
- * Define function prototypes exported outside.
+ * \note This file is deprecated and kept only for backward compatibility.
  *
- * Required to silent gcc "no previous prototype" warnings.
- */
-void coop_yield(void);
-void coop_switch(void);
-
-void coop_switch(void)
-{
-       IRQ_ASSERT_ENABLED();
-
-       ATOMIC(proc_schedule());
-}
-
-/**
- * Co-operative context switch
+ * -->
  */
-void coop_yield(void)
-{
-       ATOMIC(SCHED_ENQUEUE(current_process));
-       coop_switch();
-}