home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lxapi32.zip / Dev32 / lxGDTSel.c < prev    next >
C/C++ Source or Header  |  2002-04-26  |  1KB  |  53 lines

  1. /* $Id: lxGDTSel.c,v 1.2 2002/04/26 23:08:54 smilcke Exp $ */
  2.  
  3. /*
  4.  * gdtsel.c
  5.  * Autor:               Stefan Milcke
  6.  * Erstellt am:         05.11.2001
  7.  * Letzte Aenderung am: 15.12.2001
  8.  *
  9. */
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #define INCL_NOPMAPI
  13. #include <os2.h>
  14. #endif
  15.  
  16. #include <devhelp.h>
  17. #include <ldefos2.h>
  18.  
  19. int selectorsUsed[MAX_GDTSELECTORS]={0};
  20.  
  21. //------------------------------ allocGDTSelector ------------------------------
  22. unsigned short allocGDTSelector(void)
  23. {
  24.  int i;
  25.  unsigned short __far *GDTSelectors=(unsigned short __far *)__Make48Pointer(GDTSelectors32);
  26.  for(i=0;i<MAX_GDTSELECTORS;i++)
  27.   if(!selectorsUsed[i])
  28.   {
  29.    selectorsUsed[i]=1;
  30.    return GDTSelectors[i];
  31.   }
  32.  return 0;
  33. }
  34.  
  35. //------------------------------ freeGDTSelector -------------------------------
  36. int freeGDTSelector(unsigned short selector)
  37. {
  38.  int i;
  39.  unsigned short __far *GDTSelectors=(unsigned short __far *)__Make48Pointer(GDTSelectors32);
  40.  for(i=0;i<MAX_GDTSELECTORS;i++)
  41.   if(GDTSelectors[i]==selector)
  42.   {
  43.    selectorsUsed[i]=0;
  44.    return TRUE;
  45.   }
  46.  return FALSE;
  47. }
  48.  
  49.  
  50. #ifdef __cplusplus
  51. }
  52. #endif
  53.