home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / CMD / SVGAINST / DISPSTRC.H < prev    next >
Text File  |  1995-04-14  |  18KB  |  465 lines

  1. /*DDK*************************************************************************/
  2. /*                                                                           */
  3. /* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
  4. /*                                                                           */
  5. /*    The following IBM OS/2 WARP source code is provided to you solely for  */
  6. /*    the purpose of assisting you in your development of OS/2 WARP device   */
  7. /*    drivers. You may use this code in accordance with the IBM License      */
  8. /*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
  9. /*    Copyright statement may not be removed.                                */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12. /* SCCSID = %%s %%s %%s */
  13.  
  14. /****************************************************************************/
  15. /*                                                                          */
  16. /*                                                                          */
  17. /*                                                                          */
  18. /****************************************************************************/
  19.  
  20. /*********************************************************************/
  21. /*                                                                   */
  22. /*  SOURCE FILE NAME: dispstrc.h                                     */
  23. /*                                                                   */
  24. /*  DESCRIPTIVE NAME: Structure file for DISPINST                    */
  25. /*                                                                   */
  26. /*  FUNCTION: This include file contains the structures.             */
  27. /*                                                                   */
  28. /*  ENTRY POINT: None                                                */
  29. /*                                                                   */
  30. /*  PARAMETERS: None                                                 */
  31. /*   Input:                                                          */
  32. /*   Output:                                                         */
  33. /*                                                                   */
  34. /*  REFERENCES: None                                                 */
  35. /*                                                                   */
  36. /*********************************************************************/
  37.  
  38. //////////////////////////////////////////////////////////////////
  39. // structure used to "malloc" memory
  40. //////////////////////////////////////////////////////////////////
  41. typedef struct _MEMORYITEM
  42. {
  43.     ULONG cb;
  44.     BYTE  mem[1];
  45. } MEMORYITEM;
  46. typedef MEMORYITEM *PMEMORYITEM;
  47.  
  48. //////////////////////////////////////////////////////////////////
  49. // structure used to determine how much memory the system has
  50. //////////////////////////////////////////////////////////////////
  51. typedef struct _MEMINFO
  52.  {
  53.   USHORT usLowMemKB;
  54.   ULONG  ulHighMemKB;
  55.  } MEMINFO;
  56.  
  57. //////////////////////////////////////////////////////////////////
  58. // structure used for linked lists
  59. //////////////////////////////////////////////////////////////////
  60. typedef struct _HEAD
  61. {
  62.     PVOID pFirst;
  63.     PVOID pLast;
  64. }HEAD,*PHEAD;
  65.  
  66. //////////////////////////////////////////////////////////////////
  67. // structure for data returned by DosQueryFSAttach (FSQBUFFER2)
  68. //////////////////////////////////////////////////////////////////
  69. typedef struct _FSDINFO
  70. {
  71.     USHORT iType;
  72.     USHORT cbName;
  73.     USHORT cbFSDName;
  74.     USHORT cbFSAData;
  75.     UCHAR  szName[CCHMAXPATH];
  76.     UCHAR  szFSDName[CCHMAXPATH];
  77.     UCHAR  rgFSAData[CCHMAXPATH];
  78. } FSDINFO;
  79. typedef FSDINFO *PFSDINFO;
  80.  
  81. //////////////////////////////////////////////////////////////////
  82. // window data for the main window
  83. //////////////////////////////////////////////////////////////////
  84. typedef struct _WINDATA
  85. {
  86.     BOOL   fSrcDirChecked;                     /* have we validated src dir? */
  87.     PSZ    pszKey;
  88.     ULONG  ulFlags;
  89.     PSZ    pszVolumeLabel;
  90.     PSZ    pszDiskettePrompt;
  91.     PSZ    pszGeneralPrompt;
  92.     HEAD   headDsps;
  93. } WINDATA;
  94. typedef WINDATA *PWINDATA;
  95.  
  96. //////////////////////////////////////////////////////////////////
  97. // window data for file dialogs
  98. //////////////////////////////////////////////////////////////////
  99. typedef struct _FILDLG
  100. {
  101.     PWINDATA pwin;                              /* pointer to pwin structure */
  102.     HWND     hwndEntryfield;                         /* hwnd for entry field */
  103.     HWND     hwndListBox;                               /* hwnd for list box */
  104.     BOOL     fEditing;           /* edit field has focus but has not changed */
  105.     BOOL     fSelected;                   /* item in dir listbox is selected */
  106.     CHAR     szDirectory[CCHMAXPATH];         /* current directory in dialog */
  107. } FILDLG;
  108. typedef FILDLG *PFILDLG;
  109.  
  110. //////////////////////////////////////////////////////////////////
  111. // MPARAM data for the worker thread
  112. //////////////////////////////////////////////////////////////////
  113. typedef struct _WORKERMPARAM
  114. {
  115.     MPARAM mp1;
  116.     MPARAM mp2;
  117. } WORKERMPARAM;
  118. typedef WORKERMPARAM *PWORKERMPARAM;
  119.  
  120. //////////////////////////////////////////////////////////////////
  121. // structures used for storing .DSP file data
  122. //////////////////////////////////////////////////////////////////
  123. typedef struct _CONFIG
  124. {
  125.     struct _CONFIG *next;
  126.     PSZ pszLine;
  127. } CONFIG;
  128. typedef CONFIG *PCONFIG;
  129.  
  130. ///////////////////////////////////////////////////////
  131. //structure to hold the global DSPINSTAL data structure
  132. ///////////////////////////////////////////////////////
  133.  
  134.  
  135.  
  136.                                  /* flags for ulFlags field of FILES */
  137. #define F_PACKED     0x00000001  /* source is packed */
  138. #define F_BUNDLE     0x00000002  /* source contains a bundle of packed files */
  139.  
  140. typedef struct _FILES
  141. {
  142.     struct _FILES *next;
  143.     ULONG ulFlags;
  144.     PSZ   pszSource;
  145.     PSZ   pszDest;
  146. } FILES;
  147. typedef FILES *PFILES;
  148.  
  149. typedef struct _OS2INI
  150. {
  151.     struct _OS2INI *next;
  152.     PSZ pszIniFile;
  153.     PSZ pszApp;
  154.     PSZ pszKey;
  155.     PSZ pszValue;
  156. } OS2INI;
  157. typedef OS2INI *POS2INI;
  158.  
  159.  
  160. //////////////////////////////////////////////////////////////////
  161. // structures used for display adapter types
  162. //////////////////////////////////////////////////////////////////
  163.  
  164. #define F_DEFAULT_PRIMARY     0x0001                    /* for usFlags below */
  165. #define F_DEFAULT_SECONDARY   0x0002
  166.  
  167. typedef struct _KNOWN_ADAPTER  /* kadp */              /* for initialization */
  168. {
  169.     PSZ      pszKey;                                          /* default key */
  170.     USHORT   usMid;                                /* msg id of adapter type */
  171.     USHORT   usFlags;                                     /* see flags above */
  172.     PUSHORT  pusMidSubtype;                                      /* for SVGA */
  173. } KNOWN_ADAPTER;
  174.  
  175. typedef struct dspinstl_chain_element
  176. {
  177.      ULONG ulRevNum;
  178.      struct dspinstl_chain_element  *pNextDspInstl;
  179.      PSZ   pszKey;                                 //Key for action routine to modify
  180.                                                    //i.e. ET4000 adapter type
  181.      PSZ   pszGeneralPrompt;
  182.      PSZ   pszDiskettePrompt;
  183.      PSZ   pszVolumeLabel;
  184.      PSZ   pszResolution;
  185. }DSPINSTL_CHAIN,*PDSPINSTL_CHAIN;
  186.  
  187. typedef struct dspinstl_global_data
  188. {
  189.      ULONG rev_num;
  190.      PFN   pfnLinkChainRoutine;
  191.      PFN   pfnUnlinkChainRoutine;
  192.      PFN   pfnNextElementRoutine;
  193.      PFN   pfnGetResponseFile;
  194.      PFN   pfnSpecifyResolution;
  195.      PFN   pfnSpecifyVideoMonitor;
  196.      PFN   pfnSpecifyDisplayAdapter;
  197.      PFN   pfnLogFunction;
  198.      PDSPINSTL_CHAIN  pHeadDspInstl_Chain;
  199.      BOOL  fResponseInstall;
  200.      PSZ   pszSourceDirectory;
  201.      ULONG ulSizeSource;
  202.      PSZ   pszResolutionString;                               //CID
  203. }DSPINSTL_GLOBAL_DATA,*PDSPINSTL_GLOBAL_DATA;
  204.  
  205.  
  206.  
  207. #define F_LIST_ALL    0x00000001   /* show all valid available adapter types */
  208.  
  209. typedef struct _ADAPTERTYPE   /* adptype */
  210. {
  211.     struct      _ADAPTERTYPE  *pNextAdapter;
  212.     PDSPINSTL_GLOBAL_DATA     pDspInstlHead;
  213.     ULONG       ulCount;                     /* Number of Parameter Sets */
  214.     BOOL        fSelectedPrimary;
  215.     BOOL        fSelectedSecondary;
  216.     ULONG       ulRevNum;
  217.     PSZ         pszTitle;
  218.     PSZ         pszKey;                      //SVGA or other known key value
  219.     PSZ         pszActionDll;
  220.     ULONG       ulFlags;                     /* see above */
  221.     USHORT      iAdapter;                    /* index of known adapter type */
  222.     USHORT      iAdapterSubtype;                           /* for SVGA @DSW@ */
  223.     USHORT      usMonitor;                   /* Primary or secondary */
  224.     USHORT      iAdapterChipSet;             /* adapter ChipSet; 90163 */
  225.     PSZ         pszChipSets;                 /* SVGA Chipsets supported;90163 */
  226.     LONG        iItem;                       /* item index in list box;90163 */
  227.     PSZ         pszDSCfileName;              /* warp DSC file used for install */
  228. } ADAPTERTYPE, *PADAPTERTYPE;
  229.  
  230. //typedef struct _ADAPTERINFO /* adpinfo */
  231. //{
  232. //  ULONG        ulRevNum;
  233. //  USHORT       iAdapter;                    /* index of known adapter type */
  234. //  PADAPTERTYPE padptype;                    /* Head of the adapter chain   */
  235. //  CHAR         szKeyActual[MAX_KEY];        /* after action routine */
  236. //  ULONG        ulFlags;                     /* see above */
  237. //  USHORT       iAdapter;                    /* index of known adapter type */
  238. //}ADAPTERINFO, *PADAPTERINFO;
  239.  
  240.  
  241. //////////////////////////////////////////////////////////////////
  242. // structures used for monitor.cfg
  243. //////////////////////////////////////////////////////////////////
  244.  
  245. typedef struct _PARM   /* parm */
  246. {
  247.     struct _PARM *next;
  248.     PSZ    pszParm;
  249. } PARM, *PPARM;
  250.  
  251. typedef struct _MONITOR /* mtr */
  252. {
  253.     struct _MONITOR *next;
  254.     PSZ    pszTitle;
  255.     ULONG  cParmSets;
  256.     ULONG  cParmsPerSet;
  257.     HEAD   headParmSet;
  258. } MONITOR, *PMONITOR;
  259.  
  260. typedef struct _DLGINFO /* dlginfo */
  261. {
  262.     PVOID  pvIn;
  263.     PVOID  pvOut;
  264. } DLGINFO, *PDLGINFO;
  265.  
  266.  
  267. //////////////////////////////////////////////////////////////////
  268. // structures used for adapter.cfg
  269. //////////////////////////////////////////////////////////////////
  270.  
  271. typedef struct _ADAPTER /* adp */
  272. {
  273.     struct _ADAPTER *next;
  274.     PSZ    pszTitle;
  275.     ULONG  cParms;
  276.     HEAD   headParms;
  277. } ADAPTER, *PADAPTER;
  278.  
  279.  
  280. //////////////////////////////////////////////////////////////////
  281. // structures used to store DSPs
  282. //////////////////////////////////////////////////////////////////
  283.  
  284. typedef struct _DSP        /* dsp */
  285. {
  286.     struct _DSP *next;
  287.     PSZ pszDspFilename;
  288.     HEAD headDspLines;
  289. } DSP, *PDSP;
  290.  
  291. typedef struct _DSPLINE    /* dspln */
  292. {
  293.     struct _DSPLINE *next;
  294.     ULONG  ulTag;                                            /* type of line */
  295.     ULONG  ulFlags;                                       /* see flags below */
  296.     ULONG  iTagLine;                          /* index of line following tag */
  297.     PSZ    pszLine;
  298. } DSPLINE, *PDSPLINE;
  299.  
  300. typedef struct _resolutions
  301. {
  302.     UCHAR  achResolutionString[MAX_RESOLUTION_STRING];
  303.     ULONG  ulSelected;
  304. }RESOLUTIONS,*PRESOLUTIONS;
  305.  
  306.  
  307. typedef struct _winresolutiondata
  308. {
  309.      PRESOLUTIONS pResolutions;
  310.      BOOL         bAllowMultipleResolutions;
  311.      ULONG        ulCountResolutions;
  312.      PDSPINSTL_GLOBAL_DATA pInstalData;
  313. }WINRESOLUTIONDATA,*PWINRESOLUTIONDATA;
  314.  
  315. typedef struct _svgawaitdata
  316. {
  317.      HWND hwnd;
  318.      ULONG ulSession;
  319.      ULONG ulProcessid;
  320. }SVGAWAITDATA,*PSVGAWAITDATA;
  321.  
  322.                                                 /* flags for DSPLINE ulFlags */
  323. #define F_MODE_PRIMARY    0x00000001
  324. #define F_MODE_SECONDARY  0x00000002
  325. #define F_MODE_DOS        0x00000004
  326. #define F_MODE_WINDOWS    0x00000008
  327. #define F_MODE_BIDI       0x00000010
  328. #define F_MODE_DUAL       0x00000020
  329.  
  330.  
  331. //////////////////////////////////////////////////////////////////
  332. // structure used by Specify_Display_Adapter call-back function
  333. //////////////////////////////////////////////////////////////////
  334.  
  335. typedef struct _ADAPTERENTRY  /* adpentry */
  336. {
  337.     CHAR   szTitle[CCH_MAX_TITLE];
  338.     ULONG  cParms;
  339.     CHAR   achParms[CCH_MAX_ADP_PARMS];
  340. } ADAPTERENTRY, *PADAPTERENTRY;
  341.  
  342.  
  343. //////////////////////////////////////////////////////////////////
  344. // structures used by Specify_Video_Monitor call-back function
  345. //////////////////////////////////////////////////////////////////
  346.  
  347. typedef struct _VIDEOPARM     /* vidparm */
  348. {
  349.     ULONG  cParms;
  350.     CHAR   achParms[CCH_MAX_VID_PARMS];
  351. } VIDEOPARM, *PVIDEOPARM;
  352.  
  353. typedef struct _VIDEOENTRY    /* videntry */
  354. {
  355.     CHAR      szTitle[CCH_MAX_TITLE];
  356.     ULONG     cVideoParms;
  357.     VIDEOPARM avidparm[C_MAX_VID_PARMS];
  358. } VIDEOENTRY, *PVIDEOENTRY;
  359.  
  360.  
  361. /*--------------------------------------------------------------*\
  362.  * DLGINFO - This structure contains a semaphore and a window   *
  363.  *         handle.  This information is used to corrdinate      *
  364.  *         displaying of a dialog in the foreground thread from *
  365.  *         the background thread (see MainDlgBox)               *
  366. \*--------------------------------------------------------------*/
  367.  
  368. struct DLGINFO {  /* dlginfo */
  369.     MRESULT mr;        /* returned.  For MainLoadDlg: hwnd of created window */
  370.                                    /* For MainDlgBox: SHORT1(mr)=return code */
  371.     HWND   hwndOwner;                      /* handle of owner window created */
  372.     PFNWP  pfnDlgProc;                                /* function for dialog */
  373.     USHORT idDlg;
  374.     PVOID  pCreateParams;
  375.     BOOL   fDestroy;   /* TRUE if window should be destroyed after displayed */
  376.     HEV    hev;              /* RAM sem to indicate window creation complete */
  377. };
  378.  
  379.  
  380. /*--------------------------------------------------------------*\
  381.  * MBXINFO - This structure contains a semaphore and a window   *
  382.  *         handle.  This information is used to corrdinate      *
  383.  *         displaying of a message box in the foreground thread *
  384.  *         from the background thread (see MainMessageBox)      *
  385. \*--------------------------------------------------------------*/
  386.  
  387. struct MBXINFO {  /* mbxinfo */
  388.     ULONG   rc;                            /* return code from WinMessageBox */
  389.     HWND    hwndOwner;                     /* handle of owner window created */
  390.     HEV     hev;                 /* RAM sem to indicate WinMessageBox return */
  391.     USHORT  id;                         /* message box id (for help manager) */
  392.     USHORT  flStyle;                              /* defines buttons, others */
  393.     PSZ     pszText;                              /* contents of message box */
  394.     PSZ     pszTitle;
  395. };
  396.  
  397.  
  398.  
  399. typedef struct DMQSdata
  400. {                               /* DMQS data structure */               /*@ISO*/
  401.    USHORT   next_DMQS_offset;                                           /*@ISO*/
  402.    BYTE     slot_number;                                                /*@ISO*/
  403.    USHORT   level_id;                                                   /*@ISO*/
  404.    ULONG    vendor_id;                                                  /*@ISO*/
  405.    USHORT   io_reg_base;                                                /*@ISO*/
  406.    USHORT   mmio_regs;                                                  /*@ISO*/
  407.    USHORT   one_meg_aperture;                                           /*@ISO*/
  408.    USHORT   four_meg_aperture;                                          /*@ISO*/
  409.    USHORT   vram_base;                                                  /*@ISO*/
  410.    USHORT   monitor_id;                                                 /*@ISO*/
  411.    BYTE     vram_size;                                                  /*@ISO*/
  412. } DMQSDATA;                                                             /*@ISO*/
  413.  
  414. typedef struct  exec_tokens
  415. {
  416.      PSZ   pszToken;
  417.      ULONG ulValue;
  418. }EXEC_TOKENS,*PEXEC_TOKENS;
  419.  
  420.  
  421. //////////////////////////////////////////////////////////////////
  422. // structure used by IsAnyABIOSPresent().    DonW 68000
  423. //////////////////////////////////////////////////////////////////
  424.  
  425. #define HW_CFG_MCA              0x00000001
  426. #define HW_CFG_EISA             0x00000002
  427. #define HW_CFG_ABIOS_SUPPORTED  0x00000004
  428. #define HW_CFG_ABIOS_PRESENT    0x00000008
  429.  
  430. typedef struct _BIOSINFO {
  431.     USHORT usModel;
  432.     USHORT usSubmodel;
  433.     USHORT usRevision;
  434.     USHORT fABIOSPresent;
  435. } BIOSINFO, FAR *PBIOSINFO;
  436.  
  437. typedef struct _THREADINFO {              //@MTD
  438.    PHEAD  phead;                          //@MTD
  439.    PHEAD  pheadNext;                      //@MTD
  440.    BOOL   fSaveChanges;                   //@MTD
  441.    ULONG rc;                              //@MTD
  442. } THREADINFO, *PTHREADINFO;               //@MTD
  443.  
  444. TID   tidConfig;                          //@MTD
  445. TID   tidOS2ini;                          //@MTD
  446.  
  447. /* D87507 */
  448. typedef struct _STYLEDATA               /* style data for progress indicator */
  449. {
  450.     ULONG  ulBorder;                                         /* border width */
  451.     ULONG  ulMargin;                                         /* margin width */
  452.     ULONG  ulBmpID;                                             /* bitmap ID */
  453.     COLOR  clrProg;                              /* progress indicator color */
  454.     COLOR  clrSlider;                                    /* slider-bar color */
  455.     COLOR  clrBorder;                                        /* border color */
  456. } STYLEDATA, *PSTYLEDATA;
  457.  
  458. typedef struct _WINDATA2      /* window specific data for progress indicator */
  459. {
  460.     HWND       hwndSlider;                           /* handle to slider-bar */
  461.     ULONG      ulBmpWidth;                                /* width of bitmap */
  462.     HBITMAP    hbm;                                    /* handle to a bitmap */
  463.     PSTYLEDATA pstyle;                            /* pointer to style struct */
  464. } WINDATA2, *PWINDATA2;
  465.