diff gpf/tst/idle_pei.c @ 0:509db1a7b7b8

initial import: leo2moko-r1
author Space Falcon <falcon@ivan.Harhan.ORG>
date Mon, 01 Jun 2015 03:24:05 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpf/tst/idle_pei.c	Mon Jun 01 03:24:05 2015 +0000
@@ -0,0 +1,253 @@
+/*
++------------------------------------------------------------------------------
+|  File:       idle_pei.c
++------------------------------------------------------------------------------
+|                 Copyright Texas Instruments 2002
+|                 All rights reserved.
+|
++------------------------------------------------------------------------------
+| Purpose:     PEI interface for the IDLE entity.
+|
+| $Identity:$
++------------------------------------------------------------------------------
+*/
+
+#define IDLE_PEI_C
+
+/*==== INCLUDES ==============================================================*/
+
+#include "typedefs.h"
+#include "vsi.h"
+#include "pei.h" 
+#include "tools.h"
+#include "frame.h"
+#include "idle.h"
+
+/*==== CONSTS ================================================================*/
+
+/*==== TYPES =================================================================*/
+
+/*==== LOCALS ================================================================*/
+
+/*==== PRIVATE FUNCTIONS =====================================================*/
+
+/*
++------------------------------------------------------------------------------
+|	Function	:  pei_primitive
++------------------------------------------------------------------------------
+|   Description	:  This function is called by the frame when a primitive is
+|                  received and needs to be processed.
+|
+|   Parameters	:  prim      - Pointer to the received primitive
+|
+|   Return		:  PEI_OK    - function succeeded
+|                  PEI_ERROR - function failed
++------------------------------------------------------------------------------
+*/
+static short pei_primitive (void * prim)
+{
+  if (prim != NULL)
+  {
+    PFREE(P2D(prim));
+  }
+
+  return PEI_OK;
+}
+
+/*
++------------------------------------------------------------------------------
+|   Function	:  pei_init
++------------------------------------------------------------------------------
+|   Description	:  This function is called by the frame. It is used to initialise
+|                  the entitiy.
+|
+|   Parameters	:  handle            - task handle
+|
+|   Return		:  PEI_OK            - entity initialised
+|                  PEI_ERROR         - entity not (yet) initialised
++------------------------------------------------------------------------------
+*/
+static short pei_init (T_HANDLE handle)
+{
+  /*
+   * Initialize task handle
+   */
+  TRACE_FUNCTION("pei_init");
+
+  idle_handle = handle;
+
+  /*
+   * Open communication channels
+   */
+  if (hCommTST < VSI_OK)
+  {
+    if ((hCommTST = vsi_c_open(VSI_CALLER "RCV")) < VSI_OK)
+      return PEI_ERROR;
+  }
+
+  return (PEI_OK);
+}
+
+/*
++------------------------------------------------------------------------------
+|   Function	:  pei_signal
++------------------------------------------------------------------------------
+|   Description :  This function is called by the frame when a signal has been 
+|                  received.
+|
+|   Parameters  :  opc            - signal operation code
+|                  *data          - pointer to primitive
+|
+|   Return      :  PEI_OK         - signal processed
+|                  PEI_ERROR      - signal not processed
+|
++------------------------------------------------------------------------------
+*/
+static short pei_signal (U32 opc, void *data)
+{
+  /*
+   * Process signal
+   */
+
+  //TRACE_FUNCTION("pei_signal");
+  /* Generate trig in TST */
+  PSIGNAL(hCommTST, IDLE_CNF, NULL);  
+
+  return PEI_OK;
+} 
+
+/*
++------------------------------------------------------------------------------
+|   Function    :  pei_exit
++------------------------------------------------------------------------------
+|   Description	:  This function is called by the frame when the entity is
+|                  terminated. All open resources are freed.
+|
+|   Parameters	:  -
+|
+|   Return		:  PEI_OK         - exit sucessful
+|                  PEI_ERROR      - exit not sueccessful
++------------------------------------------------------------------------------
+*/
+static short pei_exit (void)
+{
+  /*
+   * Close communication channels
+   */
+
+  TRACE_FUNCTION("pei_exit");
+
+  vsi_c_close(VSI_CALLER hCommTST);
+  hCommTST = VSI_ERROR;
+
+  return PEI_OK;
+}
+
+/*
++------------------------------------------------------------------------------
+|   Function	:  pei_config
++------------------------------------------------------------------------------
+|   Description	:  This function is called by the frame when a primitive is
+|                  received indicating dynamic configuration.
+|
+|                  This function is not used in this entity.
+|
+|   Parameters  :  handle         - Communication handle
+|
+|   Return      :  PEI_OK         - sucessful
+|                  PEI_ERROR      - not successful
++------------------------------------------------------------------------------
+*/
+static short pei_config (char *inString)
+{
+  TRACE_FUNCTION(inString);
+  return PEI_OK;
+}
+
+/*
++------------------------------------------------------------------------------
+|   Function    :  pei_monitor
++------------------------------------------------------------------------------
+|   Description	:  This function is called by the frame in case sudden entity
+|                  specific data is requested (e.g. entity Version).
+|
+|   Parameters	:  out_monitor    - return the address of the data to be
+|                                   monitoredCommunication handle
+|
+|   Return      :  PEI_OK         - sucessful (address in out_monitor is valid)
+|                  PEI_ERROR      - not successful
++------------------------------------------------------------------------------
+*/
+static short pei_monitor (void **out_monitor)
+{
+  TRACE_FUNCTION ("pei_monitor");
+  return PEI_OK;
+}
+
+/*
++------------------------------------------------------------------------------
+|   Function    :  pei_timeout
++------------------------------------------------------------------------------
+|   Description :  This function is called by the frame when a timer has expired.
+|
+|   Parameters  :  index          - timer index
+|
+|   Return      :  PEI_OK         - timeout processed
+|                  PEI_ERROR      - timeout not processed
+|
++------------------------------------------------------------------------------
+*/
+static short pei_timeout (USHORT index)
+{
+	TRACE_ERROR("Unknown Timeout");
+
+  return PEI_OK;
+}
+
+/*==== PUBLIC FUNCTIONS ======================================================*/
+
+/*
++------------------------------------------------------------------------------
+|   Function    :  idle_pei_create
++------------------------------------------------------------------------------
+|   Description	:  This function is called by the frame when the process is 
+|                  created.
+|
+|   Parameters	:  out_name          - Pointer to the buffer in which to locate
+|                                      the name of this entity
+|
+|   Return		:  PEI_OK            - entity created successfuly
+|                  PEI_ERROR         - entity could not be created
++------------------------------------------------------------------------------
+*/
+short idle_pei_create (T_PEI_INFO **info)
+{
+static T_PEI_INFO pei_info =
+              {
+               "IDLE",         /* name */
+               {              /* pei-table */
+                 pei_init,
+                 pei_exit,
+                 pei_primitive,
+                 pei_timeout,
+                 pei_signal,
+                 NULL,        /* no pei_run function */
+                 pei_config,
+                 pei_monitor
+               },
+               255,           /* stack size */
+               10,            /* queue entries */
+               2,             /* priority (1->low, 255->high) */
+               0,             /* number of timers */
+               0x03           /* flags: bit 0   active(0) body/passive(1) */
+              };              /*        bit 1   com by copy(0)/reference(1) */
+
+  /*
+   * Export startup configuration data
+   */
+  *info = &pei_info;
+
+  return PEI_OK;
+}
+
+/*==== END OF FILE ===========================================================*/