wdbDspLib.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* wdbDspLib.c - DSP register support for the external WDB agent */
  2. /* Copyright 1984-1998 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,31jul98,kab created
  7. */
  8. /*
  9. DESCPRIPTION
  10. This library contains routines to save, restore, get, and
  11. set the DSP registers. These operations are not task-specific.
  12. */
  13. #include "wdb/wdbRegs.h"
  14. #include "string.h"
  15. static struct
  16.     {
  17.     WDB_REG_SET_OBJ regSet; /* generic register set */
  18.     WDB_DSP_REGS dspContext; /* the hardware context */
  19.     } dspRegSetObj;
  20. /******************************************************************************
  21. *
  22. * wdbDspSave - save the DSP registers.
  23. */ 
  24. void wdbDspSave (void)
  25.     {
  26.     dspSave (&dspRegSetObj.dspContext);
  27.     }
  28. /******************************************************************************
  29. *
  30. * wdbDspRestore - restore the previously saved DSP regs.
  31. */ 
  32. void wdbDspRestore (void)
  33.     {
  34.     dspRestore (&dspRegSetObj.dspContext);
  35.     }
  36. /******************************************************************************
  37. *
  38. * wdbDspGet - get a pointer to the DSP reg block.
  39. */ 
  40. void wdbDspGet
  41.     (
  42.     void ** ppRegs
  43.     )
  44.     {
  45.     *ppRegs = (void *)&dspRegSetObj.dspContext;
  46.     }
  47. /******************************************************************************
  48. *
  49. * wdbDspSet - set the DSP reg block.
  50. */ 
  51. void wdbDspSet
  52.     (
  53.     void * pRegs
  54.     )
  55.     {
  56.     bcopy ((char *)pRegs, (char *)&dspRegSetObj.dspContext, sizeof (DSP_CONTEXT));
  57.     }
  58. /******************************************************************************
  59. *
  60. * wdbDspObjInit - initialize a WDB_REG_SET_OBJ representing DSP regs.
  61. *
  62. * RETURNS: a pointer to a WDB_REG_SET_OBJ
  63. */ 
  64. WDB_REG_SET_OBJ * wdbDspLibInit (void)
  65.     {
  66.     WDB_REG_SET_OBJ * pRegSet = &dspRegSetObj.regSet;
  67.     pRegSet->regSetType = WDB_REG_SET_DSP;
  68.     pRegSet->save = wdbDspSave;
  69.     pRegSet->load = wdbDspRestore;
  70.     pRegSet->get = (void (*) (char **)) wdbDspGet;
  71.     pRegSet->set = (void (*) (char *))  wdbDspSet;
  72.     dspSave (&dspRegSetObj.dspContext);
  73.     return (pRegSet);
  74.     }