コード例 #1
0
ファイル: ossidc16.cpp プロジェクト: OS2World/DRV-SBLiveOS2
//******************************************************************************
//******************************************************************************
BOOL OSS16_AttachToPdd()
{
   // Attach to the 32 bits OSS driver
   if(DevHelp_AttachDD((NPSZ)"SBLIVE2$",(NPBYTE)&IDCTable)) {
      return FALSE;
   }
   return (BOOL) CallOSS32(IDC32_INIT, 0, (ULONG)(VOID FAR *)OSSIDC_ENTRY, 0, 0, 0);
}
コード例 #2
0
ファイル: usbinit.c プロジェクト: fatso83/casio-wmp1
static BOOL CheckHCDDriversLoaded( PSZ cmdLine, USHORT start, USHORT end )
{
   PSZ      drvNameChar=cmdLine+start;
   BOOL     loaded = FALSE;   //LR0904 was = TRUE
   USHORT   charIndex=0;
   CHAR     nChar;

   gHCDDriverName[sizeof(gHCDDriverName)-1]=0;

   if (*(cmdLine+start)=='(' && end>0 && *(cmdLine+end-1)==')')
   {  // ignore enclosing braces
      start++; end--; end--;
   }
   for (;start<=end; start++)
   {
      nChar=*(cmdLine+start);
      if (nChar!=',' && nChar && nChar!=' ')
      {  // fill in driver's name separated by ','
         if (charIndex<sizeof(gHCDDriverName)-1)
         {
            if (!charIndex)
               setmem(gHCDDriverName,' ',sizeof(gHCDDriverName)-1);
            gHCDDriverName[charIndex]=nChar;
            charIndex++;
         }
      }
      if (nChar==',' || start==end)  // process name when separator reached or on last character
      {
         charIndex=0;
         // check if driver loaded
         if (!DevHelp_AttachDD (gHCDDriverName, (NPBYTE)&gDDTable))  //LR0904 ! added
         {
            loaded = TRUE; //LR0904 was = FALSE
            break;
         }
      }
   }
   return (loaded);
}
コード例 #3
0
ファイル: joyinit.c プロジェクト: OS2World/DRV-USBLib
void JOYInit()
{
   KeyData keyData[2] = {"V",       CFSTR_TYPE_DEC, 0, 0,
      "DEVICE:", CFSTR_TYPE_DEC, 0, 0};
   PSZ    kbdCmdLine;
   ULONG  cmdRStatus, errColumn;
   USHORT cmdRc, i;

#ifdef DEBUG
   dsPrint (DBG_HLVLFLOW, "USBJOY: Init Entry\r\n");
#endif

   pRP->Status = STATUS_DONE;

   if (ghDriver)
     return;  // initialization already passed
   Device_Help = ((PRPINITIN)pRP)->DevHlpEP; // save DevHlp Entry Point

   kbdCmdLine = (PSZ)MAKEP (SELECTOROF (((PRPINITIN)pRP)->InitArgs),
                            OFFSETOF   (((PRPINITIN)pRP)->InitArgs));
   cmdRStatus = ProcessConfigString (kbdCmdLine, 2, (KeyData FAR *)&keyData);
   cmdRc      = LOUSHORT (cmdRStatus);
   errColumn  = (ULONG)HIUSHORT (cmdRStatus);

   switch (cmdRc)
   {
     case CFSTR_UNKWN_KEYS:
        SetLongValue (gVMessages[INIT_MESSAGE_UNKNOWNKWD], errColumn);
        gMessageCount = AddToMsgArray (gMessageIDs, INIT_MESSAGE_UNKNOWNKWD, gMessageCount, MAX_INIT_MESSAGE_COUNT);
      break;
     case CFSTR_CONVERR:
       SetLongValue (gVMessages[INIT_MESSAGE_INVNUMERIC], errColumn );
       gMessageCount = AddToMsgArray (gMessageIDs, INIT_MESSAGE_INVNUMERIC, gMessageCount, MAX_INIT_MESSAGE_COUNT);
   }

   gVerbose   = (BYTE)(keyData[0].keyStatus != CFSTR_STATUS_NOTFOUND);
   if (keyData[1].keyStatus == CFSTR_STATUS_OK)
      gDevice = (keyData[1].value < MAX_JOYS)? (BYTE)keyData[1].value : (BYTE)NULL;
   else gDevice = NULL;

   if (DevHelp_AttachDD ("USBHID$ ", (NPBYTE)&gIDCTable)) // obtain USBHID's IDC entry point
   {
      pRP->Status |= STERR;
      gMessageCount = AddToMsgArray (gMessageIDs, INIT_MESSAGE_NO_HID, gMessageCount, MAX_INIT_MESSAGE_COUNT);
      #ifdef DEBUG
         dsPrint (DBG_HLVLFLOW, "USBJOY: Init Faild to Attach to USBHID$ \r\n");
      #endif
   }
   else
   {
     gpHIDIDC  = (PUSBIDCEntry)gIDCTable.ProtIDCEntry;
     gdsHIDIDC = gIDCTable.ProtIDC_DS;
   }

   if (pRP->Status == STATUS_DONE)
   {
      RegisterJOY();                                              // register driver with RM

      gNoOfJOYs = 0;
      for (i = 0; i < MAX_JOYS; i++)
        gJOY[i].active = 0;

      ((PRPINITOUT)pRP)->CodeEnd = ((USHORT)&JOYInit);        // set end of code segment
      ((PRPINITOUT)pRP)->DataEnd = ((USHORT)&gInitDataStart); // set end of data segment
      SetLongValue (gVMessages[INIT_MESSAGE_LOADED], (ULONG)gDriverStruct.MajorVer);
      SetLongValue (gVMessages[INIT_MESSAGE_LOADED], (ULONG)gDriverStruct.MinorVer);
      SetLongValue (gVMessages[INIT_MESSAGE_LOADED], (ULONG)gDevice);
      gMessageCount = AddToMsgArray (gMessageIDs, INIT_MESSAGE_LOADED, gMessageCount, MAX_INIT_MESSAGE_COUNT);
   }
   else
   {
      ((PRPINITOUT)pRP)->CodeEnd = 0;
      ((PRPINITOUT)pRP)->DataEnd = 0;
   }
   if (gVerbose) TTYWrite (gVMessages, gMessageIDs, gMessageCount);

#ifdef DEBUG
   dsPrint1 (DBG_HLVLFLOW, "USBJOY: Init Status = %x\r\n", pRP->Status);
#endif
   return;
}