home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 Mobile / Chip_Mobile_2001.iso / palm / system / _palmemu / palmemu.exe / Scripting / Perl / HostControl.pm < prev    next >
Text File  |  2000-07-04  |  26KB  |  847 lines

  1. ########################################################################
  2. #
  3. #    File:            HostControl.pm
  4. #
  5. #    Purpose:        Perl wrappers for Palm OS Emulator HostControl 
  6. #                    functions.
  7. #
  8. #    Description:    This file contains Perl equivalents of Palm OS
  9. #                    Emulator Host Control functions, like HostGetHostID,
  10. #                    HostGetHostVersion, HostProfileStart etc...
  11. #
  12. #                    In general, functions follow the calling
  13. #                    conventions in the SDK headers.  However, there
  14. #                    are exceptions.  See the comments before each
  15. #                    subroutine for details.
  16. #
  17. ########################################################################
  18.  
  19. package HostControl;
  20.  
  21. use Exporter ();
  22. @ISA = qw(Exporter);
  23.  
  24. @EXPORT = qw(
  25.  
  26.     HostGetHostVersion HostGetHostID HostGetHostPlatform 
  27.     HostIsSelectorImplemented HostGestalt HostIsCallingTrap
  28.     
  29.     HostProfileInit HostProfileStart HostProfileStop HostProfileDump 
  30.     HostProfileCleanup HostProfileDetailFn
  31.     
  32.     HostErrNo HostFClose HostFEOF HostFError HostFFlush HostFGetC 
  33.     HostFGetPos HostFGetS HostFOpen HostFPrintF HostFPutC HostFPutS 
  34.     HostFRead HostRemove HostRename HostFReopen HostFScanF HostFSeek 
  35.     HostFSetPos HostFTell HostFWrite HostTmpFile HostTmpNam HostGetEnv
  36.  
  37.     HostMalloc HostRealloc HostFree
  38.  
  39.     HostGremlinIsRunning HostGremlinNumber HostGremlinCounter 
  40.     HostGremlinLimit HostGremlinNew
  41.     
  42.     HostImportFile HostExportFile
  43.  
  44.     HostGetPreference HostSetPreference
  45.  
  46.     HostLogFile HostSetLogFileSize
  47.  
  48.     HostSessionCreate HostSessionOpen HostSessionClose HostSessionQuit 
  49.     HostSignalSend HostSignalWait HostSignalResume
  50.  
  51.     HostTraceInit HostTraceClose HostTraceOutputT HostTraceOutputTL 
  52.     HostTraceOutputVT HostTraceOutputVTL HostTraceOutputB
  53.  
  54. );
  55.  
  56. use EmRPC;
  57. use EmSysTraps;
  58.  
  59. #$slkSocket = EmRPC::slkSocketPoserRPC;
  60. #$slkSocket = EmRPC::slkSocketDebugger;
  61. #$slkPktType = EmRPC::slkPktTypeSystem;
  62.  
  63. # HostControl.h functions.
  64.  
  65. # Host information selectors
  66. use constant hostSelectorGetHostVersion            => 0x0100;
  67. use constant hostSelectorGetHostID                => 0x0101;
  68. use constant hostSelectorGetHostPlatform        => 0x0102;
  69. use constant hostSelectorIsSelectorImplemented    => 0x0103;
  70. use constant hostSelectorGestalt                => 0x0104;
  71. use constant hostSelectorIsCallingTrap            => 0x0105;
  72.  
  73. # Profiler Selectors
  74. use constant hostSelectorProfileInit            => 0x0200;
  75. use constant hostSelectorProfileStart            => 0x0201;
  76. use constant hostSelectorProfileStop            => 0x0202;
  77. use constant hostSelectorProfileDump            => 0x0203;
  78. use constant hostSelectorProfileCleanup            => 0x0204;
  79. use constant hostSelectorProfileDetailFn        => 0x0205;
  80.  
  81. # Std C Library wrapper selectors
  82.  
  83. use constant hostSelectorErrNo                    => 0x0300;
  84.  
  85. use constant hostSelectorFClose                    => 0x0301;
  86. use constant hostSelectorFEOF                    => 0x0302;
  87. use constant hostSelectorFError                    => 0x0303;
  88. use constant hostSelectorFFlush                    => 0x0304;
  89. use constant hostSelectorFGetC                    => 0x0305;
  90. use constant hostSelectorFGetPos                => 0x0306;
  91. use constant hostSelectorFGetS                    => 0x0307;
  92. use constant hostSelectorFOpen                    => 0x0308;
  93. use constant hostSelectorFPrintF                => 0x0309;        # Floating point not yet supported in Poser
  94. use constant hostSelectorFPutC                    => 0x030A;
  95. use constant hostSelectorFPutS                    => 0x030B;
  96. use constant hostSelectorFRead                    => 0x030C;
  97. use constant hostSelectorRemove                    => 0x030D;        # Not yet implemented in Poser
  98. use constant hostSelectorRename                    => 0x030E;        # Not yet implemented in Poser
  99. use constant hostSelectorFReopen                => 0x030F;        # Not yet implemented in Poser
  100. use constant hostSelectorFScanF                    => 0x0310;        # Not yet implemented in Poser
  101. use constant hostSelectorFSeek                    => 0x0311;
  102. use constant hostSelectorFSetPos                => 0x0312;
  103. use constant hostSelectorFTell                    => 0x0313;
  104. use constant hostSelectorFWrite                    => 0x0314;
  105. use constant hostSelectorTmpFile                => 0x0315;
  106. use constant hostSelectorTmpNam                    => 0x0316;        # Not yet implemented in Poser
  107. use constant hostSelectorGetEnv                    => 0x0317;
  108.  
  109. use constant hostSelectorMalloc                    => 0x0318;        # Not yet implemented in Poser
  110. use constant hostSelectorRealloc                => 0x0319;        # Not yet implemented in Poser
  111. use constant hostSelectorFree                    => 0x031A;        # Not yet implemented in Poser
  112.  
  113. # Gremlin Selectors
  114. use constant hostSelectorGremlinIsRunning        => 0x0400;
  115. use constant hostSelectorGremlinNumber            => 0x0401;
  116. use constant hostSelectorGremlinCounter            => 0x0402;
  117. use constant hostSelectorGremlinLimit            => 0x0403;
  118. use constant hostSelectorGremlinNew                => 0x0404;
  119.  
  120. # Database Selectors
  121. use constant hostSelectorImportFile                => 0x0500;
  122. use constant hostSelectorExportFile                => 0x0501;
  123.  
  124. # Preference Selectors
  125. use constant hostSelectorGetPreference            => 0x0600;
  126. use constant hostSelectorSetPreference            => 0x0601;
  127.  
  128. # Logging Selectors
  129. use constant hostSelectorLogFile                => 0x0700;
  130. use constant hostSelectorSetLogFileSize            => 0x0701;
  131.  
  132. # RPC Selectors
  133. use constant hostSelectorSessionCreate            => 0x0800;        # Not yet implemented in Poser
  134. use constant hostSelectorSessionOpen            => 0x0801;        # Not yet implemented in Poser
  135. use constant hostSelectorSessionClose            => 0x0802;
  136. use constant hostSelectorSessionQuit            => 0x0803;
  137. use constant hostSelectorSignalSend                => 0x0804;
  138. use constant hostSelectorSignalWait                => 0x0805;
  139. use constant hostSelectorSignalResume            => 0x0806;
  140.  
  141. # External tracing tool support
  142. use constant hostSelectorTraceInit                => 0x0900;
  143. use constant hostSelectorTraceClose                => 0x0901;
  144. use constant hostSelectorTraceOutputT            => 0x0902;
  145. use constant hostSelectorTraceOutputTL            => 0x0903;
  146. use constant hostSelectorTraceOutputVT            => 0x0904;
  147. use constant hostSelectorTraceOutputVTL            => 0x0905;
  148. use constant hostSelectorTraceOutputB            => 0x0906;
  149.  
  150. use constant hostSelectorLastTrapNumber            => 0x0907;
  151.  
  152.  
  153. #/* ==================================================================== */
  154. #/* Host environment-related calls                                         */
  155. #/* ==================================================================== */
  156.  
  157. ########################################################################
  158. #
  159. #    FUNCTION:        HostGetHostVersion
  160. #
  161. #    DESCRIPTION:    Get the version number of the host (Palm OS Emulator).
  162. #
  163. #    PARAMETERS:        None
  164. #
  165. #    RETURNS:        Version number of Poser in Palm OS version format.
  166. #
  167. ########################################################################
  168.  
  169. sub HostGetHostVersion
  170. {
  171.     # long HostGetHostVersion(void)
  172.  
  173.     my ($return, $format) = ("int32", "int16");
  174.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  175.                         hostSelectorGetHostVersion, @_);
  176.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  177. }
  178.  
  179.  
  180. ########################################################################
  181. #
  182. #    FUNCTION:        HostGetHostID
  183. #
  184. #    DESCRIPTION:    Get the ID of the debugging host.
  185. #
  186. #    PARAMETERS:        None
  187. #
  188. #    RETURNS:        hostIDPalmOS, hostIDPalmOSEmulator, hostIDPalmOSSimulator 
  189. #                    etc...
  190. #
  191. ########################################################################
  192.  
  193. sub HostGetHostID
  194. {
  195.     # HostID HostGetHostID(void)
  196.  
  197.     my ($return, $format) = ("int32", "int16");
  198.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  199.                         hostSelectorGetHostID, @_);
  200.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  201. }
  202.  
  203.  
  204. ########################################################################
  205. #
  206. #    FUNCTION:        HostGetHostPlatform
  207. #
  208. #    DESCRIPTION:    Get the host platform ID.
  209. #                    hostPlatformPalmOS, hostPlatformWindows, 
  210. #                    hostPlatformMacintosh, hostPlatformUnix etc...
  211. #
  212. #    PARAMETERS:        None
  213. #
  214. #    RETURNS:        hostPlatformPalmOS, hostPlatformWindows, 
  215. #                    hostPlatformMacintosh, hostPlatformUnix etc...
  216. #
  217. ########################################################################
  218.  
  219. sub HostGetHostPlatform
  220. {
  221.     # HostPlatform HostGetHostPlatform(void)
  222.  
  223.     my ($return, $format) = ("int32", "int16");
  224.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  225.                         hostSelectorGetHostPlatform, @_);
  226.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  227. }
  228.  
  229.  
  230. ########################################################################
  231. #
  232. #    FUNCTION:        HostIsSelectorImplemented
  233. #
  234. #    DESCRIPTION:    Determines if the particular selector is implemented.
  235. #
  236. #    PARAMETERS:        None
  237. #
  238. #    RETURNS:        True or False.
  239. #
  240. ########################################################################
  241.  
  242. sub HostIsSelectorImplemented
  243. {
  244.     # HostBool HostIsSelectorImplemented(long selector)
  245.  
  246.     my ($return, $format) = ("int32", "int16 int32");
  247.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  248.                         hostSelectorIsSelectorImplemented, @_);
  249.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  250. }
  251.  
  252.  
  253. ########################################################################
  254. #
  255. #    FUNCTION:        HostGestalt
  256. #
  257. #    DESCRIPTION:    Return queries about the Runtime environment.
  258. #
  259. #    PARAMETERS:        None
  260. #
  261. #    RETURNS:        Runtime environment info.
  262. #
  263. ########################################################################
  264.  
  265. sub HostGestalt
  266. {
  267.     # HostErr HostGestalt(long gestSel, long* response)
  268.  
  269.     my ($return, $format) = ("HostErr", "int32 rptr");
  270.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  271.                         hostSelectorGestalt, @_);
  272.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  273. }
  274.  
  275.  
  276. ########################################################################
  277. #
  278. #    FUNCTION:        HostIsCallingTrap
  279. #
  280. #    DESCRIPTION:    Determines if the Palm OS Emulator is currently
  281. #                    calling a trap.  True if so, false if not.
  282. #
  283. #    PARAMETERS:        None
  284. #
  285. #    RETURNS:        True if trap is being called, false if not.
  286. #
  287. ########################################################################
  288.  
  289. sub HostIsCallingTrap
  290. {
  291.     # HostBool HostIsCallingTrap(void)
  292.  
  293.     my ($return, $format) = ("int32", "int16");
  294.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  295.                         hostSelectorIsCallingTrap, @_);
  296.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  297. }
  298.  
  299.  
  300. #/* ==================================================================== */
  301. #/* Profiling-related calls                                                 */
  302. #/* ==================================================================== */
  303.  
  304.  
  305. ########################################################################
  306. #
  307. #    FUNCTION:        HostProfileInit
  308. #
  309. #    DESCRIPTION:    Initializes and enables profiling in debugging host.
  310. #
  311. #    PARAMETERS:        None
  312. #
  313. #    RETURNS:        Returns zero if successful, non-zero otherwise.
  314. #
  315. ########################################################################
  316.  
  317. sub HostProfileInit
  318. {
  319.     # HostErr HostProfileInit(long maxCalls, long maxDepth)
  320.  
  321.     my ($return, $format) = ("HostErr", "int16 int32 int32");
  322.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  323.                         hostSelectorProfileInit, @_);
  324.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  325. }
  326.  
  327.  
  328. ########################################################################
  329. #
  330. #    FUNCTION:        HostProfileDetailFn
  331. #
  332. #    DESCRIPTION:    Profiles the function that contains the specified 
  333. #                    address.
  334. #
  335. #    PARAMETERS:        None
  336. #
  337. #    RETURNS:        Returns zero if successful, non-zero otherwise.
  338. #
  339. ########################################################################
  340.  
  341. sub HostProfileDetailFn
  342. {
  343.     # HostErr HostProfileDetailFn(void* addr, HostBool logDetails)
  344.  
  345.     my ($return, $format) = ("HostErr", "int16 rptr int32");
  346.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  347.                         hostSelectorProfileDetailFn, @_);
  348.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  349. }
  350.  
  351.  
  352. ########################################################################
  353. #
  354. #    FUNCTION:        HostProfileStart
  355. #
  356. #    DESCRIPTION:    Turns Profiling on.
  357. #
  358. #    PARAMETERS:        None
  359. #
  360. #    RETURNS:        Returns zero if successful, non-zero otherwise.
  361. #
  362. ########################################################################
  363.  
  364. sub HostProfileStart
  365. {
  366.     # HostErr HostProfileStart(void)
  367.  
  368.     my ($return, $format) = ("HostErr", "int16");
  369.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  370.                         hostSelectorProfileStart, @_);
  371.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  372. }
  373.  
  374.  
  375. ########################################################################
  376. #
  377. #    FUNCTION:        HostProfileStop
  378. #
  379. #    DESCRIPTION:    Initializes and enables profiling in debugging host.
  380. #
  381. #    PARAMETERS:        None
  382. #
  383. #    RETURNS:        Returns zero if successful, non-zero otherwise.
  384. #
  385. ########################################################################
  386.  
  387. sub HostProfileStop
  388. {
  389.     # HostErr HostProfileStop(void)
  390.  
  391.     my ($return, $format) = ("HostErr", "int16");
  392.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  393.                         hostSelectorProfileStop, @_);
  394.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  395. }
  396.  
  397.  
  398. ########################################################################
  399. #
  400. #    FUNCTION:        HostProfileDump
  401. #
  402. #    DESCRIPTION:    Writes the current profiling information to the 
  403. #                    named file.
  404. #
  405. #    PARAMETERS:        None
  406. #
  407. #    RETURNS:        Returns zero if successful, non-zero otherwise.
  408. #
  409. ########################################################################
  410.  
  411. sub HostProfileDump
  412. {
  413.     # HostErr HostProfileDump(const char* filename)
  414.  
  415.     my ($return, $format) = ("HostErr", "int16 string");
  416.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  417.                         hostSelectorProfileDump, @_);
  418.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  419. }
  420.  
  421.  
  422. ########################################################################
  423. #
  424. #    FUNCTION:        HostProfileCleanup
  425. #
  426. #    DESCRIPTION:    Initializes and enables profiling in debugging host.
  427. #
  428. #    PARAMETERS:        None
  429. #
  430. #    RETURNS:        Returns zero if successful, non-zero otherwise.
  431. #
  432. ########################################################################
  433.  
  434. sub HostProfileCleanup
  435. {
  436.     # HostErr HostProfileCleanup(void)
  437.  
  438.     my ($return, $format) = ("HostErr", "int16");
  439.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  440.                         hostSelectorProfileCleanup, @_);
  441.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  442. }
  443.  
  444.  
  445. #/* ==================================================================== */
  446. #/* Std C Library-related calls                                             */
  447. #/*     ADD LATER!!!                                                     */
  448. #/* ==================================================================== */
  449.  
  450.  
  451. #/* ==================================================================== */
  452. #/* Gremlin-related calls                                                 */
  453. #/* ==================================================================== */
  454.  
  455.  
  456. ########################################################################
  457. #
  458. #    FUNCTION:        HostGremlinIsRunning
  459. #
  460. #    DESCRIPTION:    Determines if Gremlin is currently running.
  461. #
  462. #    PARAMETERS:        None
  463. #
  464. #    RETURNS:        True if a gremlin is currently running, False otherwise.
  465. #
  466. ########################################################################
  467.  
  468. sub HostGremlinIsRunning
  469. {
  470.     # HostBool HostGremlinIsRunning(void)
  471.  
  472.     my ($return, $format) = ("int32", "int16");
  473.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  474.                         hostSelectorGremlinIsRunning, @_);
  475.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  476. }
  477.  
  478.  
  479. ########################################################################
  480. #
  481. #    FUNCTION:        HostGremlinNumber
  482. #
  483. #    DESCRIPTION:    Retrieves the number of the currently running gremlin.
  484. #
  485. #    PARAMETERS:        None
  486. #
  487. #    RETURNS:        The number of the current gremlin.
  488. #                    Only valid if a gremlin is currently executing.
  489. #
  490. ########################################################################
  491.  
  492. sub HostGremlinNumber
  493. {
  494.     # long HostGremlinNumber(void)
  495.  
  496.     my ($return, $format) = ("int32", "int16");
  497.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  498.                         hostSelectorGremlinNumber, @_);
  499.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  500. }
  501.  
  502.  
  503. ########################################################################
  504. #
  505. #    FUNCTION:        HostGremlinCounter
  506. #
  507. #    DESCRIPTION:    Returns the current event counter of the currently 
  508. #                    running gremlin.
  509. #
  510. #    PARAMETERS:        None
  511. #
  512. #    RETURNS:        Current event counter.  
  513. #                    Only valid if a gremlin is currently executing.
  514. #
  515. ########################################################################
  516.  
  517. sub HostGremlinCounter
  518. {
  519.     # long HostGremlinCounter(void)
  520.  
  521.     my ($return, $format) = ("int32", "int16");
  522.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  523.                         hostSelectorGremlinCounter, @_);
  524.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  525. }
  526.  
  527.  
  528. ########################################################################
  529. #
  530. #    FUNCTION:        HostGremlinLimit
  531. #
  532. #    DESCRIPTION:    Retrieves the limit value of the currently running gremlin.
  533. #
  534. #    PARAMETERS:        None
  535. #
  536. #    RETURNS:        Limit value of the currently running gremlin.
  537. #                    Only valid if a gremlin is currently executing.
  538. #
  539. ########################################################################
  540.  
  541. sub HostGremlinLimit
  542. {
  543.     # long HostGremlinLimit(void)
  544.  
  545.     my ($return, $format) = ("int32", "int16");
  546.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  547.                         hostSelectorGremlinLimit, @_);
  548.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  549. }
  550.  
  551.  
  552. ########################################################################
  553. #
  554. #    FUNCTION:        HostGremlinNew
  555. #
  556. #    DESCRIPTION:    Start a new Gremlin Horde.
  557. #
  558. #    PARAMETERS:        Starting Gremlin number.
  559. #                    Ending Gremlin number.
  560. #                    Frequency (in terms of Gremlin events) at which
  561. #                        states are automatically saved.
  562. #                    Switching depth (number of events generated before
  563. #                        switching to a different Gremlin).
  564. #                    Max depth (maximum number of events generated
  565. #                        for each Gremlin).
  566. #                    List of application names on which to run Gremlins.
  567. #
  568. #    RETURNS:        Error code.
  569. #
  570. ########################################################################
  571.  
  572. sub HostGremlinNew
  573. {
  574.     # HostErr HostGremlinNew(const HostGremlinInfo*)
  575.  
  576.     ($start, $stop, $save_freq, $switch_depth, $max_depth, @apps) = @_;
  577.  
  578.     my ($app_string) = join (",", @apps);
  579.  
  580.     my ($struct) = pack("NNNNN", $start, $stop, $save_freq, $switch_depth, $max_depth) . $app_string;
  581.  
  582.     my ($return, $format) = ("HostErr", "int16 block");
  583.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  584.                         hostSelectorGremlinNew, $struct);
  585.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  586. }
  587.  
  588.  
  589. #/* ==================================================================== */
  590. #/* Import/export-related calls                                             */
  591. #/* ==================================================================== */
  592.  
  593.  
  594. ########################################################################
  595. #
  596. #    FUNCTION:    HostImportFile
  597. #
  598. #    DESCRIPTION:    Path to file on desktop
  599. #            Card to import file to.
  600. #
  601. #    PARAMETERS:    None
  602. #
  603. #    RETURNS:    Error code.
  604. #
  605. ########################################################################
  606.  
  607. sub HostImportFile
  608. {
  609.     # HostErr HostImportFile(const char* fileName, long cardNum)
  610.  
  611.     my ($return, $format) = ("HostErr", "int16 string int32");
  612.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  613.                         hostSelectorImportFile, @_);
  614.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  615. }
  616.  
  617.  
  618. ########################################################################
  619. #
  620. #    FUNCTION:    HostExportFile
  621. #
  622. #    DESCRIPTION:    Export a db from Emulator to the host.
  623. #
  624. #    PARAMETERS:    None
  625. #
  626. #    RETURNS:    Error code.
  627. #
  628. ########################################################################
  629.  
  630. sub HostExportFile
  631. {
  632.     # HostErr HostExportFile(const char* fileName, long cardNum, const char* dbName)
  633.  
  634.     my ($return, $format) = ("HostErr", "int16 string int32 string");
  635.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  636.                         hostSelectorExportFile, @_);
  637.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  638. }
  639.  
  640.  
  641. #/* ==================================================================== */
  642. #/* Logging-related calls                                                 */
  643. #/* ==================================================================== */
  644.  
  645.  
  646. ########################################################################
  647. #
  648. #    FUNCTION:        HostSetLogFileSize
  649. #
  650. #    DESCRIPTION:    Determines the size of the log file the Palm OS 
  651. #                    Emulator is using.  By default the Palm OS Emulator
  652. #                    Uses a 1 MB log file to record the last 1 MB of 
  653. #                    Log Data information.
  654. #
  655. #    PARAMETERS:        Size, The new size for the logging file in bytes.
  656. #
  657. #    RETURNS:        None.
  658. #
  659. #
  660. ########################################################################
  661.  
  662. sub HostSetLogFileSize
  663. {
  664.     # void HostSetLogFileSize(long)
  665.  
  666.     my ($return, $format) = ("int16", "int32");
  667.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  668.                         hostSelectorSetLogFileSize, @_);
  669.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  670. }
  671.  
  672.  
  673. #/* ==================================================================== */
  674. #/* RPC-related calls                                                     */
  675. #/* ==================================================================== */
  676.  
  677.  
  678. ########################################################################
  679. #
  680. #    FUNCTION:        HostSessionCreate
  681. #
  682. #    DESCRIPTION:    Create a new session.
  683. #
  684. #    PARAMETERS:        Name of device to emulate.  Choices are: "Pilot",
  685. #                        "PalmPilot", "Palm III", "Palm IIIx",
  686. #                        "Palm V", "Palm VII".
  687. #                    RAM size (in K) to emulate.
  688. #                    Path to ROM to use.
  689. #
  690. #    RETURNS:        Error code.
  691. #
  692. ########################################################################
  693.  
  694. sub HostSessionCreate
  695. {
  696.     # HostErr HostSessionCreate(const char* device, long ramSize, const char* romPath)
  697.  
  698.     my ($return, $format) = ("HostErr", "string int32 string");
  699.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  700.                         hostSelectorSessionCreate, @_);
  701.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  702. }
  703.  
  704.  
  705. ########################################################################
  706. #
  707. #    FUNCTION:        HostSessionOpen
  708. #
  709. #    DESCRIPTION:    Open a previously create session file.
  710. #
  711. #    PARAMETERS:        Path to session file to open.
  712. #
  713. #    RETURNS:        Error code.
  714. #
  715. ########################################################################
  716.  
  717. sub HostSessionOpen
  718. {
  719.     # HostErr HostSessionOpen(const char* psfFileName)
  720.  
  721.     my ($return, $format) = ("HostErr",  "string");
  722.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  723.                         hostSelectorSessionOpen, @_);
  724.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  725. }
  726.  
  727.  
  728. ########################################################################
  729. #
  730. #    FUNCTION:        HostSessionClose
  731. #
  732. #    DESCRIPTION:    Close the current session, optionally saving it.
  733. #
  734. #    PARAMETERS:        Name of session file to create. Can be null.
  735. #
  736. #    RETURNS:        Error code.
  737. #
  738. ########################################################################
  739.  
  740. sub HostSessionClose
  741. {
  742.     # HostErr HostSessionClose(const char* saveFileName)
  743.  
  744.     my ($return, $format) = ("HostErr", "string");
  745.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  746.                         hostSelectorSessionClose, @_);
  747.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  748. }
  749.  
  750.  
  751. ########################################################################
  752. #
  753. #    FUNCTION:        HostSessionQuit
  754. #
  755. #    DESCRIPTION:    Ask Palm OS Emulator to quit.
  756. #
  757. #    PARAMETERS:        None
  758. #
  759. #    RETURNS:        Error code.
  760. #
  761. ########################################################################
  762.  
  763. sub HostSessionQuit
  764. {
  765.     # HostErr HostSessionQuit(void)
  766.  
  767.     my ($return, $format) = ("HostErr", "int16");
  768.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  769.                         hostSelectorSessionQuit, @_);
  770.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  771. }
  772.  
  773.  
  774. ########################################################################
  775. #
  776. #    FUNCTION:        HostSignalSend
  777. #
  778. #    DESCRIPTION:    Sends a signal to any script that has host signal 
  779. #                    wait calls pending.
  780. #
  781. #    PARAMETERS:        signalNumber, The signal you want to wait for.
  782. #
  783. #    RETURNS:        List containing the error code and the numeric
  784. #                    signal value returned from the Emulator.
  785. #
  786. ########################################################################
  787.  
  788. sub HostSignalSend
  789. {
  790.     # HostErr HostSignalSend(HostSignal signalNumber)
  791.  
  792.     my ($return, $format) = ("HostErr", "int32*");
  793.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  794.                         hostSelectorSignalSend, $_[0], 0);
  795.  
  796.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  797. }
  798.  
  799.  
  800. ########################################################################
  801. #
  802. #    FUNCTION:        HostSignalWait
  803. #
  804. #    DESCRIPTION:    Wait for a signal from the Palm OS Emulator.
  805. #
  806. #    PARAMETERS:        timeout (in milliseconds)
  807. #
  808. #    RETURNS:        List containing the error code and the numeric
  809. #                    signal value returned from the Emulator.
  810. #
  811. ########################################################################
  812.  
  813. sub HostSignalWait
  814. {
  815.     # HostErr HostSignalWait(long timeout, HostSignal* signalNumber)
  816.     
  817.     my ($return, $format) = ("HostErr", "int32 rptr");
  818.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  819.                         hostSelectorSignalWait, $_[0], 0);
  820.  
  821.     ($D0, $params[2]);    # 0 = selector, 1 = timeout, 2 = signal number
  822. }
  823.  
  824.  
  825. ########################################################################
  826. #
  827. #    FUNCTION:        HostSignalResume
  828. #
  829. #    DESCRIPTION:    Tell the Emulator to resume after it has sent us
  830. #                    a signal.
  831. #
  832. #    PARAMETERS:        None
  833. #
  834. #    RETURNS:        Error code.
  835. #
  836. ########################################################################
  837.  
  838. sub HostSignalResume
  839. {
  840.     # HostErr HostSignalResume(void)
  841.  
  842.     my ($return, $format) = ("HostErr", "int16");
  843.     my ($D0, $A0, @params) = EmRPC::DoRPC (sysTrapHostControl, $format,
  844.                         hostSelectorSignalResume, @_);
  845.     EmRPC::ReturnValue ($return, $D0, $A0, @params);
  846. }
  847.