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

VxWorks

开发平台:

C/C++

  1. /* repeatHost.c - target support of host side repeat command */
  2. /* Copyright 1984-1998 Wind River Systems, Inc. */
  3. #include "copyright_wrs.h"
  4. /*
  5. modification history
  6. --------------------
  7. 01c,04sep98,cdp  apply 01b for all ARM CPUs with ARM_THUMB==TRUE.
  8. 01b,11jul97,cdp  added Thumb (ARM7TDMI_T) support.
  9. 01a,02oct95,pad  created, copied from usrLib.c version 08j.
  10. */
  11. /*
  12. DESCRIPTION
  13. This file consists of the support routine for the repeat command meant to be
  14. executed from the WindSh shell.
  15. */
  16. /* includes */
  17. #include "vxWorks.h"
  18. /*******************************************************************************
  19. *
  20. * repeatHost - call a function repeatedly
  21. *
  22. * This command calls a specified function <n> times, with up to eight of its
  23. * arguments.  If <n> is 0, the routine is called endlessly.
  24. *
  25. * Normally, this routine is called only by repeat{}, which spawns it as a
  26. * task.
  27. *
  28. * RETURNS: N/A
  29. *
  30. * SEE ALSO: repeat{}
  31. *
  32. * NOMANUAL
  33. */
  34. void repeatHost
  35.     (
  36.     FAST int  n, /* no. of times to call func (0=forever) */
  37.     FAST FUNCPTR func, /* function to call repeatedly         */
  38.     int arg1, /* first of eight args to pass to func */
  39.     int arg2,
  40.     int arg3,
  41.     int arg4,
  42.     int arg5,
  43.     int arg6,
  44.     int arg7,
  45.     int arg8
  46.     )
  47.     {
  48.     FAST BOOL infinite = (n == 0);
  49. #if ((CPU_FAMILY == ARM) && ARM_THUMB)
  50.     func = (FUNCPTR)((UINT32)func | 1);
  51. #endif
  52.     while (infinite || (--n >= 0))
  53. (* func) (arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
  54.     }