home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / os / vxworks / 1181 < prev    next >
Encoding:
Internet Message Format  |  1993-01-08  |  2.9 KB

  1. Path: sparky!uunet!spool.mu.edu!agate!dog.ee.lbl.gov!lbl.gov!vxwexplo
  2. From: gordon@tpocc.gsfc.nasa.gov (Gordon Miller)
  3. Newsgroups: comp.os.vxworks
  4. Subject: re:  RPC's
  5. Date: Fri, 8 Jan 93 07:51:27 EST
  6. Organization: Lawrence Berkeley Laboratory, Berkeley CA
  7. Lines: 59
  8. Sender: vxwexplo@lbl.gov
  9. Message-ID: <9301081251.AA05179@tpocc.gsfc.nasa.gov>
  10. NNTP-Posting-Host: 128.3.112.16
  11. Originator: daemon@vxw.ee.lbl.gov
  12.  
  13.  
  14. sapp@falcon.ssc.gov (Kevin Sapp) writes:
  15.  
  16. >I have RPC's working between a Sparc2 and a VxWorks MVME147, but only
  17. >at the shell.  When I execute the RPC server directly from the shell
  18. >everything works fine.  When I do a taskSpawn 100,0,20000,myRpcTest
  19. >the program dies down in the pmap_unset function during an indirect
  20. >function call off of (a1), the address that it is trying to call 
  21. >causes a bus error.
  22.  
  23. I am surprised this works from the shell.  A quick look at the 
  24. manual shows that your arguement list could be the problem.  The
  25. call taskSpawn has a usage as follows:
  26.  
  27.     int taskSpawn (name, priority, options, stackSize, entryPt,
  28.         arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10)
  29. where
  30.     char    *name;     /* name of the new task       */
  31.     int     priority;  /* priority of the new task   */
  32.     int     options;   /* task option word           */
  33.     int     stackSize; /* size of stack, be generous */
  34.     FUNCPTR entryPt;   /* entry point of new task    */
  35.     int     arg1;      /* task arguement one         */
  36.     int     arg2;      /* task arguement two         */
  37.     int     arg3;      /* task arguement three       */
  38.     int     arg4;      /* task arguement four        */
  39.     int     arg5;      /* task arguement five        */
  40.     int     arg6;      /* task arguement six         */
  41.     int     arg7;      /* task arguement seven       */
  42.     int     arg8;      /* task arguement eight       */
  43.     int     arg9;      /* task arguement nine        */
  44.     int     arg10;     /* task arguement ten         */
  45.  
  46. If taskSpawn line you used really is as stated in your post, then
  47. you forgot the name for the new task, shifting the entire arguement 
  48. list off by one.  The results of this are unknown to me.
  49.  
  50. If you do not need to worry about the priority, options, stack size 
  51. and name (for referencing the task from the shell), you could use 
  52. call "sp".  This will spawn a task with the default parameters.
  53. Its usage is as follows:
  54.     
  55.     int sp (func, arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)
  56.  
  57. where
  58.  
  59.      FUNCPTR func;       /* entry point of new task    */
  60.      int arg1,arg2,arg3; /* passed to spawned task     */
  61.      int arg4,arg5,arg6; /* passed to spawned task     */
  62.      int arg7,arg8,arg9; /* passwd to spawned task     */
  63.  
  64. Jason's comments about RPC needed to be initialized (and built 
  65. into your vxWorks kernel) are still valid.  Hope this helps.
  66.  
  67. Gordon Miller                  Integral Systems, Inc.
  68. gordon@tpocc.gsfc.nasa.gov     1100 West Street
  69.                                CSC/LR
  70. (301) 497-2416                 Laurel, MD 20707
  71.  
  72.