home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / devtools / apl2 / apserver.h__ / apserver.h
Encoding:
C/C++ Source or Header  |  1993-12-15  |  2.1 KB  |  62 lines

  1. /*-m-apserver--------------------------------------------------------
  2.  *
  3.  * Module Name: apserver.h
  4.  *
  5.  * Descriptive Name: Auxiliary Processor Server
  6.  *
  7.  * Copyright:   APL2/6000               Version 1.2
  8.  *              APL2 for OS/2           Version 1.0
  9.  *              APL2 for Sun Solaris    Version 1.0
  10.  *              Licensed Materials - Property of IBM
  11.  *              (C) COPYRIGHT IBM CORP. 1994
  12.  *
  13.  * Function: Provide prototypes, typedefs and constants for
  14.  *           C auxiliary processor server
  15.  *
  16.  * Notes:
  17.  *
  18.  *    Dependencies: None
  19.  *
  20.  *    Restrictions: None
  21.  *
  22.  * Module Type: Header
  23.  *
  24.  * Change Activity:
  25.  *
  26.  *-Z----------------------------------------------------------------*/
  27.  
  28. #include "aplap.h"
  29.  
  30. /*---------------------- AP Server SRVTOKEN structure -------------------*/
  31.  
  32. typedef struct srvtoken {
  33.    struct srb * srbp;                   /* ptr to AP share request block */
  34.    void * srvbuf;                       /* ptr to shared variable buffer */
  35.    unsigned long srvbufl;               /* shared variable buffer length */
  36.    void * srvutok;                      /* user token (saved for AP use) */
  37.    int * jmpbuf;                        /* setjmp ptr for error recovery */
  38.    } SRVTOKEN;
  39.  
  40. /*---------------------- AP Server function prototypes ------------------*/
  41.  
  42. int _System apserver(int, char **, int (* _System initfn)(void *),
  43.              int (* _System waitfn)(void *),
  44.              int (* _System procfn)(void *),
  45.              int (* _System exitfn)(void *));
  46. void * _System srv_alloc(void *, unsigned long);
  47. void _System srv_free(void *);
  48.  
  49. /*---------------------- AP Server macro definitions --------------------*/
  50.  
  51. #define SRVBUF(x) (((SRVTOKEN *)(x))->srvbuf)
  52. #define SRVBUFL(x) (((SRVTOKEN *)(x))->srvbufl)
  53. #define SRVUTOK(x) (((SRVTOKEN *)(x))->srvutok)
  54. #define SRVNTOK(x) (((SRVTOKEN *)(x))->srbp->ntoken)
  55. #define SRVPXID(x) (((SRVTOKEN *)(x))->srbp->pxid)
  56. #define SRVNAME(x) (((SRVTOKEN *)(x))->srbp->name)
  57. #define SRVSRBP(x) (((SRVTOKEN *)(x))->srbp)
  58.  
  59. /*---------------------- AP Server init exit return code ----------------*/
  60.  
  61. #define SRV_REJECT_SHARE -31415927
  62.