Changeset 5354 for trunk/src


Ignore:
Timestamp:
Mar 22, 2001, 7:16:54 PM (24 years ago)
Author:
sandervl
Message:

thread handler call workaround for app bugs + GetBinaryTypeA/W port

Location:
trunk/src/kernel32
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/KERNEL32.CPP

    r5308 r5354  
    1 /* $Id: KERNEL32.CPP,v 1.59 2001-03-13 18:45:32 sandervl Exp $ */
     1/* $Id: KERNEL32.CPP,v 1.60 2001-03-22 18:16:40 sandervl Exp $ */
    22
    33/*
     
    238238    dprintf(("dwAvailVirtual  %X\n", arg1->dwAvailVirtual));
    239239}
    240 VOID WIN32API Sleep(DWORD arg1)
    241 {
    242     dprintf2(("KERNEL32:  Sleep %d\n", arg1));
    243     O32_Sleep(arg1);
    244 }
    245 //******************************************************************************
    246 //******************************************************************************
    247 DWORD WIN32API GetPriorityClass(HANDLE arg1)
    248 {
    249     dprintf(("KERNEL32:  GetPriorityClass\n"));
    250     return O32_GetPriorityClass(arg1);
    251 }
    252 //******************************************************************************
    253 //******************************************************************************
    254 BOOL WIN32API SetPriorityClass(HANDLE arg1, DWORD  arg2)
    255 {
    256     dprintf(("KERNEL32:  SetPriorityClass\n"));
    257     return O32_SetPriorityClass(arg1, arg2);
    258 }
    259 //******************************************************************************
    260 //******************************************************************************
    261240BOOL WIN32API Beep( DWORD arg1, DWORD  arg2)
    262241{
     
    370349}
    371350//******************************************************************************
    372 //TODO: Not complete or correct, but sufficient for now
    373 //******************************************************************************
    374 BOOL WIN32API GetBinaryTypeA(LPCTSTR lpApplicationName, LPDWORD lpBinaryType)
    375 {
    376   dprintf(("KERNEL32:  OS2GetBinaryTypeA %s\n", lpApplicationName));
    377   if(strstr(lpApplicationName, ".EXE") ||   strstr(lpApplicationName, ".exe"))
    378         *lpBinaryType = SCS_32BIT_BINARY;
    379   else
    380   if(strstr(lpApplicationName, ".COM") ||   strstr(lpApplicationName, ".com"))
    381         *lpBinaryType = SCS_DOS_BINARY;
    382   else
    383   if(strstr(lpApplicationName, ".PIF") ||   strstr(lpApplicationName, ".pif"))
    384         *lpBinaryType = SCS_PIF_BINARY;
    385   else  return(FALSE);
    386   return(TRUE);
    387 }
    388 //******************************************************************************
    389 //******************************************************************************
    390 BOOL WIN32API GetBinaryTypeW(LPCWSTR lpApplicationName, LPDWORD lpBinaryType)
    391 {
    392  BOOL rc;
    393  char  *astring;
    394 
    395     dprintf(("KERNEL32:  OS2GetBinaryTypeW\n"));
    396     astring = UnicodeToAsciiString((LPWSTR)lpApplicationName);
    397     rc = GetBinaryTypeA(astring, lpBinaryType);
    398     FreeAsciiString(astring);
    399     return(rc);
    400 }
    401 //******************************************************************************
    402351//******************************************************************************
    403352BOOL WIN32API FlushInstructionCache(     /*PLF Mon  98-02-09 23:56:49 : STUB STUB STUB STUB STUB */
  • trunk/src/kernel32/exceptutil.asm

    r5070 r5354  
    1 ; $Id: exceptutil.asm,v 1.12 2001-02-08 10:23:40 sandervl Exp $
     1; $Id: exceptutil.asm,v 1.13 2001-03-22 18:16:40 sandervl Exp $
    22
    33;/*
     
    232232_Mul32x32to64 endp
    233233
     234        PUBLIC  _AsmCallThreadHandler
     235_AsmCallThreadHandler proc near
     236        push    ebp
     237        mov     ebp, esp
     238
     239        push    [ebp+12]
     240        mov     eax, dword ptr [ebp+8]
     241        call    eax
     242
     243        mov     esp, ebp
     244        pop     ebp
     245        ret
     246_AsmCallThreadHandler endp
     247
    234248CODE32          ENDS
    235249
  • trunk/src/kernel32/exceptutil.h

    r4496 r5354  
    1 /* $Id: exceptutil.h,v 1.10 2000-10-18 17:09:32 sandervl Exp $ */
     1/* $Id: exceptutil.h,v 1.11 2001-03-22 18:16:41 sandervl Exp $ */
    22
    33/*
     
    4545void CDECL Mul32x32to64(PVOID result, DWORD op1, DWORD op2);
    4646
     47ULONG CDECL AsmCallThreadHandler(ULONG handler, LPVOID parameter);
     48
    4749#ifdef __cplusplus
    4850}
     
    5355void LogException(int state);
    5456
     57
    5558#endif
  • trunk/src/kernel32/makefile

    r5162 r5354  
    1 # $Id: makefile,v 1.110 2001-02-17 21:48:23 bird Exp $
     1# $Id: makefile,v 1.111 2001-03-22 18:16:41 sandervl Exp $
    22
    33#
     
    77#
    88
    9 
    109#
    1110# Compiler, tools, and interference rules.
    1211#
    1312!include ../../makefile.inc
    14 
    1513
    1614#
     
    120118$(OBJDIR)\exceptstackdump.obj \
    121119!endif
     120$(OBJDIR)\module.obj \
    122121$(OBJDIR)\kernelrsrc.obj
    123122
  • trunk/src/kernel32/thread.cpp

    r5090 r5354  
    1 /* $Id: thread.cpp,v 1.27 2001-02-11 10:34:45 sandervl Exp $ */
     1/* $Id: thread.cpp,v 1.28 2001-03-22 18:16:41 sandervl Exp $ */
    22
    33/*
     
    9898 EXCEPTION_FRAME exceptFrame;
    9999 Win32Thread     *me = (Win32Thread *)lpData;
    100  WIN32THREADPROC  winthread = me->pCallback;
     100 ULONG            winthread = (ULONG)me->pCallback;
    101101 LPVOID           userdata  = me->lpUserData;
    102102 HANDLE           hThread   = me->hThread;
     
    134134  //Set default FPU control word (no exceptions); same as in NT
    135135  CONTROL87(0x27F, 0xFFF);
    136   rc = winthread(userdata);
     136  rc = AsmCallThreadHandler(winthread, userdata);
    137137
    138138  HMSetThreadTerminated(GetCurrentThread());
  • trunk/src/kernel32/wprocess.cpp

    r5332 r5354  
    1 /* $Id: wprocess.cpp,v 1.115 2001-03-19 19:27:14 sandervl Exp $ */
     1/* $Id: wprocess.cpp,v 1.116 2001-03-22 18:16:41 sandervl Exp $ */
    22
    33/*
     
    17561756    return procinfo.hProcess; //correct?
    17571757}
     1758//******************************************************************************
     1759//******************************************************************************
     1760VOID WIN32API Sleep(DWORD arg1)
     1761{
     1762    dprintf2(("KERNEL32:  Sleep %d\n", arg1));
     1763    O32_Sleep(arg1);
     1764}
     1765//******************************************************************************
     1766//******************************************************************************
     1767DWORD WIN32API GetPriorityClass(HANDLE hProcess)
     1768{
     1769    dprintf(("KERNEL32: GetPriorityClass %x", hProcess));
     1770    return O32_GetPriorityClass(hProcess);
     1771}
     1772//******************************************************************************
     1773//******************************************************************************
     1774BOOL WIN32API SetPriorityClass(HANDLE hProcess, DWORD dwPriority)
     1775{
     1776    dprintf(("KERNEL32: SetPriorityClass %x %x", hProcess, dwPriority));
     1777    return O32_SetPriorityClass(hProcess, dwPriority);
     1778}
    17581779/**********************************************************************
    17591780 * LoadModule    (KERNEL32.499)
Note: See TracChangeset for help on using the changeset viewer.