diff options
| author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-12-30 18:08:30 +0000 | 
|---|---|---|
| committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2008-12-30 18:08:30 +0000 | 
| commit | 3c101f29013c71f6a786f9ac7bdbf29499c47cbb (patch) | |
| tree | 9264123e325ad43f6e89e8a8847198b061372d66 /src | |
| parent | e04e6ada046db4f8a8de0b9895af4dca51a36f8d (diff) | |
| download | ChibiOS-3c101f29013c71f6a786f9ac7bdbf29499c47cbb.tar.gz ChibiOS-3c101f29013c71f6a786f9ac7bdbf29499c47cbb.tar.bz2 ChibiOS-3c101f29013c71f6a786f9ac7bdbf29499c47cbb.zip  | |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@566 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'src')
| -rw-r--r-- | src/templates/chcore.c | 9 | ||||
| -rw-r--r-- | src/templates/chcore.h | 18 | 
2 files changed, 26 insertions, 1 deletions
diff --git a/src/templates/chcore.c b/src/templates/chcore.c index c15f1c490..5a887d6ed 100644 --- a/src/templates/chcore.c +++ b/src/templates/chcore.c @@ -88,12 +88,19 @@ void chSysUnlock(void) {  }
  /**
 - * Context switch.
 + * Performs a context switch.
 + * This is the most critical code in any port, this function is responsible
 + * for the context switch between 2 threads.
 + * @param otp the thread to be switched out
 + * @param ntp the thread to be switched in
 + * @note The implementation of this code affects <b>directly</b> the context
 + *       switch performance so optimize here as much as you can.
   */
  void chSysSwitchI(Thread *otp, Thread *ntp) {}
  /**
   * Prints a message on the system console (if any).
 + * @param msg the message to be printed on the system console
   */
  void chSysPuts(char *msg) {
  }
 diff --git a/src/templates/chcore.h b/src/templates/chcore.h index 7690b7ce7..e551f3a61 100644 --- a/src/templates/chcore.h +++ b/src/templates/chcore.h @@ -32,27 +32,39 @@  /**
   * Base type for stack alignment. + * This type is used only for stack alignment reasons thus can be anything from
 + * a char to a double.
   */
  typedef uint8_t stkalign_t;
  /**
   * Interrupt saved context.
 + * This structure represents the stack frame saved during a preemption-capable
 + * interrupt handler.
   */
  struct extctx {
  };
  /**
   * System saved context.
 + * This structure represents the inner stack frame during a context switching.
   */
  struct intctx {
  };
 +/**
 + * Platform dependent part of the @p Thread structure.
 + * This structure usually contains just the saved stack pointer defined as a
 + * pointer to a @p intctx structure.
 + */
  typedef struct {
    struct intctx *sp;
  } Context;
  /**
   * Platform dependent part of the \p chThdCreate() API.
 + * This code usually setup the context switching frame represented by a
 + * @p intctx structure.
   */
  #define SETUP_CONTEXT(workspace, wsize, pf, arg)                        \
  {                                                                       \
 @@ -60,12 +72,18 @@ typedef struct {  /**
   * Stack size for the system idle thread.
 + * This size depends on the idle thread implementation, usually the idle
 + * thread should take no more space than those reserved
 + * by @p INT_REQUIRED_STACK.
   */
  #define IDLE_THREAD_STACK_SIZE 0
  /**
   * Per-thread stack overhead for interrupts servicing, it is used in the
   * calculation of the correct working area size.
 + * This value can be zero on those architecture where there is a separate
 + * interrupt stack and the stack space between @p intctx and @p extctx is
 + * known to be zero.
   */
  #define INT_REQUIRED_STACK 0
  | 
