Changeset 7532 for trunk/src


Ignore:
Timestamp:
Dec 3, 2001, 1:13:10 PM (24 years ago)
Author:
sandervl
Message:

priority updates/changes

Location:
trunk/src/kernel32
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/HandleManager.cpp

    r7489 r7532  
    1 /* $Id: HandleManager.cpp,v 1.81 2001-11-29 13:38:49 sandervl Exp $ */
     1/* $Id: HandleManager.cpp,v 1.82 2001-12-03 12:13:06 sandervl Exp $ */
    22
    33/*
     
    40444044  {
    40454045      TabWin32Handles[iIndexNew].hmHandleData.hHMHandle = INVALID_HANDLE_VALUE;
    4046   return 0;                                           /* signal error */
     4046      return 0;                                           /* signal error */
    40474047  }
    40484048
     
    40764076
    40774077  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4078   lpResult = pHMHandle->pDeviceHandler->GetThreadPriority(&TabWin32Handles[iIndex].hmHandleData);
     4078  lpResult = pHMHandle->pDeviceHandler->GetThreadPriority(hThread, &TabWin32Handles[iIndex].hmHandleData);
    40794079
    40804080  return (lpResult);                                  /* deliver return code */
     
    41074107
    41084108  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4109   lpResult = pHMHandle->pDeviceHandler->SuspendThread(&TabWin32Handles[iIndex].hmHandleData);
     4109  lpResult = pHMHandle->pDeviceHandler->SuspendThread(hThread, &TabWin32Handles[iIndex].hmHandleData);
    41104110
    41114111  return (lpResult);                                  /* deliver return code */
     
    41384138
    41394139  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4140   lpResult = pHMHandle->pDeviceHandler->SetThreadPriority(&TabWin32Handles[iIndex].hmHandleData, priority);
     4140  lpResult = pHMHandle->pDeviceHandler->SetThreadPriority(hThread, &TabWin32Handles[iIndex].hmHandleData, priority);
    41414141
    41424142  return (lpResult);                                  /* deliver return code */
     
    41694169
    41704170  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4171   lpResult = pHMHandle->pDeviceHandler->GetThreadContext(&TabWin32Handles[iIndex].hmHandleData, lpContext);
     4171  lpResult = pHMHandle->pDeviceHandler->GetThreadContext(hThread, &TabWin32Handles[iIndex].hmHandleData, lpContext);
    41724172
    41734173  return (lpResult);                                  /* deliver return code */
     
    42004200
    42014201  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4202   lpResult = pHMHandle->pDeviceHandler->SetThreadContext(&TabWin32Handles[iIndex].hmHandleData, lpContext);
     4202  lpResult = pHMHandle->pDeviceHandler->SetThreadContext(hThread, &TabWin32Handles[iIndex].hmHandleData, lpContext);
    42034203
    42044204  return (lpResult);                                  /* deliver return code */
     
    42314231
    42324232  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4233   lpResult = pHMHandle->pDeviceHandler->TerminateThread(&TabWin32Handles[iIndex].hmHandleData, exitcode);
     4233  lpResult = pHMHandle->pDeviceHandler->TerminateThread(hThread, &TabWin32Handles[iIndex].hmHandleData, exitcode);
    42344234
    42354235  return (lpResult);                                  /* deliver return code */
     
    42624262
    42634263  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4264   lpResult = pHMHandle->pDeviceHandler->ResumeThread(&TabWin32Handles[iIndex].hmHandleData);
     4264  lpResult = pHMHandle->pDeviceHandler->ResumeThread(hThread, &TabWin32Handles[iIndex].hmHandleData);
    42654265
    42664266  return (lpResult);                                  /* deliver return code */
     
    42944294
    42954295  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4296   lpResult = pHMHandle->pDeviceHandler->GetExitCodeThread(&TabWin32Handles[iIndex].hmHandleData, lpExitCode);
     4296  lpResult = pHMHandle->pDeviceHandler->GetExitCodeThread(hThread, &TabWin32Handles[iIndex].hmHandleData, lpExitCode);
    42974297
    42984298  return (lpResult);                                  /* deliver return code */
     
    43254325
    43264326  pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    4327   lpResult = pHMHandle->pDeviceHandler->SetThreadTerminated(&TabWin32Handles[iIndex].hmHandleData);
     4327  lpResult = pHMHandle->pDeviceHandler->SetThreadTerminated(hThread, &TabWin32Handles[iIndex].hmHandleData);
    43284328
    43294329  return (lpResult);                                  /* deliver return code */
  • trunk/src/kernel32/hmdevice.cpp

    r7457 r7532  
    1 /* $Id: hmdevice.cpp,v 1.29 2001-11-26 14:54:00 sandervl Exp $ */
     1/* $Id: hmdevice.cpp,v 1.30 2001-12-03 12:13:08 sandervl Exp $ */
    22
    33/*
     
    14831483 * Author    : SvL
    14841484 *****************************************************************************/
    1485 INT HMDeviceHandler::GetThreadPriority(PHMHANDLEDATA pHMHandleData)
     1485INT HMDeviceHandler::GetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
    14861486{
    14871487  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::GetThreadPriority %08xh",
    14881488           pHMHandleData->hHMHandle));
    14891489
    1490   return ERROR_INVALID_HANDLE;
     1490  return THREAD_PRIORITY_ERROR_RETURN;
    14911491}
    14921492/*****************************************************************************
     
    15001500 * Author    : SvL
    15011501 *****************************************************************************/
    1502 DWORD HMDeviceHandler::SuspendThread(PHMHANDLEDATA pHMHandleData)
     1502DWORD HMDeviceHandler::SuspendThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
    15031503{
    15041504  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::SuspendThread %08xh",
    15051505           pHMHandleData->hHMHandle));
    15061506
    1507   return ERROR_INVALID_HANDLE;
     1507  return -1;
    15081508}
    15091509/*****************************************************************************
     
    15171517 * Author    : SvL
    15181518 *****************************************************************************/
    1519 BOOL HMDeviceHandler::SetThreadPriority(PHMHANDLEDATA pHMHandleData, int priority)
     1519BOOL HMDeviceHandler::SetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData, int priority)
    15201520{
    15211521  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::SetThreadPriority %08xh",
    15221522           pHMHandleData->hHMHandle));
    15231523
    1524   return ERROR_INVALID_HANDLE;
     1524  return FALSE;
    15251525}
    15261526/*****************************************************************************
     
    15341534 * Author    : SvL
    15351535 *****************************************************************************/
    1536 BOOL HMDeviceHandler::GetThreadContext(PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext)
     1536BOOL HMDeviceHandler::GetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext)
    15371537{
    15381538  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::GetThreadContext %08xh",
    15391539           pHMHandleData->hHMHandle));
    15401540
    1541   return ERROR_INVALID_HANDLE;
     1541  return FALSE;
    15421542}
    15431543/*****************************************************************************
     
    15511551 * Author    : SvL
    15521552 *****************************************************************************/
    1553 BOOL HMDeviceHandler::SetThreadContext(PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext)
     1553BOOL HMDeviceHandler::SetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext)
    15541554{
    15551555  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::SetThreadContext %08xh",
    15561556           pHMHandleData->hHMHandle));
    15571557
    1558   return ERROR_INVALID_HANDLE;
     1558  return FALSE;
    15591559}
    15601560/*****************************************************************************
     
    15681568 * Author    : SvL
    15691569 *****************************************************************************/
    1570 BOOL HMDeviceHandler::TerminateThread(PHMHANDLEDATA pHMHandleData, DWORD exitcode)
     1570BOOL HMDeviceHandler::TerminateThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, DWORD exitcode)
    15711571{
    15721572  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::TerminateThread %08xh",
    15731573           pHMHandleData->hHMHandle));
    15741574
    1575   return ERROR_INVALID_HANDLE;
     1575  return FALSE;
    15761576}
    15771577/*****************************************************************************
     
    15851585 * Author    : SvL
    15861586 *****************************************************************************/
    1587 DWORD  HMDeviceHandler::ResumeThread(PHMHANDLEDATA pHMHandleData)
     1587DWORD  HMDeviceHandler::ResumeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
    15881588{
    15891589  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::ResumeThread %08xh",
    15901590           pHMHandleData->hHMHandle));
    15911591
    1592   return ERROR_INVALID_HANDLE;
     1592  return -1;
    15931593}
    15941594/*****************************************************************************
     
    16021602 * Author    : SvL
    16031603 *****************************************************************************/
    1604 BOOL HMDeviceHandler::GetExitCodeThread(PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode)
     1604BOOL HMDeviceHandler::GetExitCodeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode)
    16051605{
    16061606  dprintf(("KERNEL32: ERROR: HandleManager::DeviceHandler::GetExitCodeThread %08xh",
    16071607           pHMHandleData->hHMHandle));
    16081608
    1609   return ERROR_INVALID_HANDLE;
     1609  return FALSE;
    16101610}
    16111611/*****************************************************************************
     
    16191619 * Author    : SvL
    16201620 *****************************************************************************/
    1621 BOOL HMDeviceHandler::SetThreadTerminated(PHMHANDLEDATA pHMHandleData)
     1621BOOL HMDeviceHandler::SetThreadTerminated(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
    16221622{
    16231623    return FALSE;
  • trunk/src/kernel32/hmdevice.h

    r7457 r7532  
    1 /* $Id: hmdevice.h,v 1.30 2001-11-26 14:54:00 sandervl Exp $ */
     1/* $Id: hmdevice.h,v 1.31 2001-12-03 12:13:08 sandervl Exp $ */
    22
    33/*
     
    399399                             BOOL                   fFirstThread);
    400400
    401  virtual INT    GetThreadPriority(PHMHANDLEDATA pHMHandleData);
    402  virtual DWORD  SuspendThread(PHMHANDLEDATA pHMHandleData);
    403  virtual BOOL   SetThreadPriority(PHMHANDLEDATA pHMHandleData, int priority);
    404 
    405  virtual BOOL   GetThreadContext(PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext);
    406  virtual BOOL   SetThreadContext(PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext);
    407 
    408  virtual BOOL   TerminateThread(PHMHANDLEDATA pHMHandleData, DWORD exitcode);
    409  virtual DWORD  ResumeThread(PHMHANDLEDATA pHMHandleData);
    410  virtual BOOL   SetThreadTerminated(PHMHANDLEDATA pHMHandleData);
    411 
    412  virtual BOOL   GetExitCodeThread(PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode);
     401 virtual INT    GetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
     402 virtual DWORD  SuspendThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
     403 virtual BOOL   SetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData, int priority);
     404
     405 virtual BOOL   GetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext);
     406 virtual BOOL   SetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext);
     407
     408 virtual BOOL   TerminateThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, DWORD exitcode);
     409 virtual DWORD  ResumeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
     410 virtual BOOL   SetThreadTerminated(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
     411
     412 virtual BOOL   GetExitCodeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode);
    413413
    414414 /* Named pipes */
  • trunk/src/kernel32/hmthread.cpp

    r5920 r7532  
    1 /* $Id: hmthread.cpp,v 1.8 2001-06-06 18:59:57 phaller Exp $ */
     1/* $Id: hmthread.cpp,v 1.9 2001-12-03 12:13:08 sandervl Exp $ */
    22
    33/*
     
    2121#include <string.h>
    2222#include <misc.h>
     23#include <wprocess.h>
    2324
    2425#include <HandleManager.H>
    2526#include "HMThread.h"
     27#include "oslibdos.h"
    2628
    2729#include <win\thread.h>
     
    6163  winthread = new Win32Thread(lpStartAddr, lpvThreadParm, fdwCreate, pHMHandleData->hHMHandle);
    6264
    63   if(winthread == 0)
    64     return(0);
    65 
     65  if(winthread == 0) {
     66      SetLastError(ERROR_NOT_ENOUGH_MEMORY);
     67      return(0);
     68  }
    6669  // @@@PH Note: with debug code enabled, ODIN might request more stack space!
    6770  //SvL: Also need more stack in release build (RealPlayer 7 sometimes runs
     
    8588//******************************************************************************
    8689//******************************************************************************
    87 INT HMDeviceThreadClass::GetThreadPriority(PHMHANDLEDATA pHMHandleData)
    88 {
     90DWORD HMDeviceThreadClass::SuspendThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
     91{
     92    dprintf(("SuspendThread %08xh)\n", pHMHandleData->hHMHandle));
     93
     94    return O32_SuspendThread(pHMHandleData->hHMHandle);
     95}
     96//******************************************************************************
     97//******************************************************************************
     98INT HMDeviceThreadClass::GetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
     99{
     100    TEB *teb;
     101
    89102    dprintf(("GetThreadPriority(%08xh)\n", pHMHandleData->hHMHandle));
    90103
    91     return O32_GetThreadPriority(pHMHandleData->hHMHandle);
    92 }
    93 //******************************************************************************
    94 //******************************************************************************
    95 DWORD HMDeviceThreadClass::SuspendThread(PHMHANDLEDATA pHMHandleData)
    96 {
    97     dprintf(("SuspendThread %08xh)\n", pHMHandleData->hHMHandle));
    98 
    99     return O32_SuspendThread(pHMHandleData->hHMHandle);
    100 }
    101 //******************************************************************************
    102 //******************************************************************************
    103 BOOL HMDeviceThreadClass::SetThreadPriority(PHMHANDLEDATA pHMHandleData, int priority)
    104 {
    105     dprintf(("SetThreadPriority (%08xh,%08xh)\n",
    106              pHMHandleData->hHMHandle,
    107              priority));
    108 
    109     return O32_SetThreadPriority(pHMHandleData->hHMHandle, priority);
     104    teb = GetTEBFromThreadHandle(hThread);
     105    if(teb == NULL) {
     106        dprintf(("!WARNING!: TEB not found!!"));
     107        SetLastError(ERROR_INVALID_HANDLE);
     108        return THREAD_PRIORITY_ERROR_RETURN;
     109    }
     110    return teb->delta_priority;
     111}
     112//******************************************************************************
     113//******************************************************************************
     114BOOL HMDeviceThreadClass::SetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData, int priority)
     115{
     116    TEB  *teb;
     117
     118    dprintf(("SetThreadPriority (%08xh,%08xh)", pHMHandleData->hHMHandle, priority));
     119
     120    teb = GetTEBFromThreadHandle(hThread);
     121    if(teb == NULL) {
     122        dprintf(("!WARNING!: TEB not found!!"));
     123        SetLastError(ERROR_INVALID_HANDLE);
     124        return THREAD_PRIORITY_ERROR_RETURN;
     125    }
     126    DWORD ret = OSLibDosSetPriority(teb->o.odin.threadId, priority);
     127    if(ret == ERROR_SUCCESS) {
     128        teb->delta_priority = priority;
     129        return TRUE;
     130    }
     131    else {
     132        dprintf(("DosSetPriority failed with rc %d", ret));
     133        return FALSE;
     134    }
    110135}
    111136//******************************************************************************
    112137//TODO: Implement this??
    113138//******************************************************************************
    114 BOOL HMDeviceThreadClass::GetThreadContext(PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext)
     139BOOL HMDeviceThreadClass::GetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext)
    115140{
    116141  dprintf(("GetThreadContext NOT IMPLEMENTED!! (TRUE)\n"));
     
    130155//TODO: Implement this??
    131156//******************************************************************************
    132 BOOL HMDeviceThreadClass::SetThreadContext(PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext)
     157BOOL HMDeviceThreadClass::SetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext)
    133158{
    134159  dprintf(("SetThreadContext NOT IMPLEMENTED!!\n"));
     
    138163//******************************************************************************
    139164//******************************************************************************
    140 BOOL HMDeviceThreadClass::TerminateThread(PHMHANDLEDATA pHMHandleData, DWORD exitcode)
     165BOOL HMDeviceThreadClass::TerminateThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, DWORD exitcode)
    141166{
    142167    dprintf(("TerminateThread (%08xh,%08xh)\n",
     
    149174//******************************************************************************
    150175//******************************************************************************
    151 BOOL HMDeviceThreadClass::SetThreadTerminated(PHMHANDLEDATA pHMHandleData)
     176BOOL HMDeviceThreadClass::SetThreadTerminated(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
    152177{
    153178    pHMHandleData->dwUserData = THREAD_TERMINATED;
     
    156181//******************************************************************************
    157182//******************************************************************************
    158 DWORD HMDeviceThreadClass::ResumeThread(PHMHANDLEDATA pHMHandleData)
     183DWORD HMDeviceThreadClass::ResumeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData)
    159184{
    160185    dprintf(("ResumeThread (%08xh)\n",
     
    165190//******************************************************************************
    166191//******************************************************************************
    167 BOOL HMDeviceThreadClass::GetExitCodeThread(PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode)
     192BOOL HMDeviceThreadClass::GetExitCodeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode)
    168193{
    169194    dprintf(("GetExitCodeThread (%08xh,%08xh)\n",
  • trunk/src/kernel32/hmthread.h

    r5587 r7532  
    1 /* $Id: hmthread.h,v 1.3 2001-04-26 13:22:47 sandervl Exp $ */
     1/* $Id: hmthread.h,v 1.4 2001-12-03 12:13:09 sandervl Exp $ */
    22
    33/*
     
    3434
    3535  /* this is a handler method for calls to WaitForSingleObject */
    36   virtual DWORD WaitForSingleObject(PHMHANDLEDATA pHMHandleData,
    37                                     DWORD  dwTimeout);
     36  virtual DWORD  WaitForSingleObject(PHMHANDLEDATA pHMHandleData,
     37                                     DWORD  dwTimeout);
    3838
    3939  /* this is a handler method for calls to WaitForSingleObjectEx */
    40   virtual DWORD WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData,
    41                                       DWORD  dwTimeout,
    42                                       BOOL   fAlertable);
     40  virtual DWORD  WaitForSingleObjectEx(PHMHANDLEDATA pHMHandleData,
     41                                       DWORD  dwTimeout,
     42                                       BOOL   fAlertable);
    4343
    44   virtual INT    GetThreadPriority(PHMHANDLEDATA pHMHandleData);
    45   virtual DWORD  SuspendThread(PHMHANDLEDATA pHMHandleData);
    46   virtual BOOL   SetThreadPriority(PHMHANDLEDATA pHMHandleData, int priority);
     44  virtual INT    GetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
     45  virtual DWORD  SuspendThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
     46  virtual BOOL   SetThreadPriority(HANDLE hThread, PHMHANDLEDATA pHMHandleData, int priority);
    4747
    48   virtual BOOL   GetThreadContext(PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext);
    49   virtual BOOL   SetThreadContext(PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext);
     48  virtual BOOL   GetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, PCONTEXT lpContext);
     49  virtual BOOL   SetThreadContext(HANDLE hThread, PHMHANDLEDATA pHMHandleData, const CONTEXT *lpContext);
    5050 
    51   virtual BOOL   TerminateThread(PHMHANDLEDATA pHMHandleData, DWORD exitcode);
    52   virtual DWORD  ResumeThread(PHMHANDLEDATA pHMHandleData);
    53   virtual BOOL   GetExitCodeThread(PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode);
    54   virtual BOOL   SetThreadTerminated(PHMHANDLEDATA pHMHandleData);
     51  virtual BOOL   TerminateThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, DWORD exitcode);
     52  virtual DWORD  ResumeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
     53  virtual BOOL   GetExitCodeThread(HANDLE hThread, PHMHANDLEDATA pHMHandleData, LPDWORD lpExitCode);
     54  virtual BOOL   SetThreadTerminated(HANDLE hThread, PHMHANDLEDATA pHMHandleData);
    5555
    56   virtual BOOL CloseHandle(PHMHANDLEDATA pHMHandleData);
     56  virtual BOOL   CloseHandle(PHMHANDLEDATA pHMHandleData);
    5757};
    5858
  • trunk/src/kernel32/oslibdos.cpp

    r7489 r7532  
    1 /* $Id: oslibdos.cpp,v 1.88 2001-11-29 13:38:51 sandervl Exp $ */
     1/* $Id: oslibdos.cpp,v 1.89 2001-12-03 12:13:09 sandervl Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    28992899//******************************************************************************
    29002900//******************************************************************************
     2901DWORD OSLibDosSetPriority(ULONG tid, int priority)
     2902{
     2903    DWORD  ret, os2priorityclass;
     2904    LONG   os2prioritydelta;
     2905    APIRET rc;
     2906
     2907    switch(priority)
     2908    {
     2909    case THREAD_PRIORITY_IDLE_W:
     2910        os2priorityclass = PRTYC_IDLETIME;
     2911        os2prioritydelta = 0;
     2912        break;
     2913    case THREAD_PRIORITY_LOWEST_W:
     2914        os2priorityclass = PRTYC_REGULAR;
     2915        os2prioritydelta = PRTYD_MINIMUM;
     2916        break;
     2917    case THREAD_PRIORITY_BELOW_NORMAL_W:
     2918        os2priorityclass = PRTYC_REGULAR;
     2919        os2prioritydelta = -15;
     2920        break;
     2921    case THREAD_PRIORITY_NORMAL_W:
     2922        os2priorityclass = PRTYC_REGULAR;
     2923        os2prioritydelta = 0;
     2924        break;
     2925    case THREAD_PRIORITY_ABOVE_NORMAL_W:
     2926        os2priorityclass = PRTYC_REGULAR;
     2927        os2prioritydelta = 15;
     2928        break;
     2929    case THREAD_PRIORITY_HIGHEST_W:
     2930        os2priorityclass = PRTYC_REGULAR;
     2931        os2prioritydelta = PRTYD_MAXIMUM;
     2932        break;
     2933    case THREAD_PRIORITY_TIME_CRITICAL_W:
     2934        os2priorityclass = PRTYC_TIMECRITICAL;
     2935        os2prioritydelta = 0;
     2936        break;
     2937    default:
     2938        dprintf(("!WARNING!: Invalid priority!!"));
     2939        SetLastError(ERROR_INVALID_PARAMETER_W);
     2940        return ERROR_INVALID_PARAMETER_W;
     2941    }
     2942    rc = DosSetPriority(PRTYS_THREAD, os2priorityclass, os2prioritydelta, tid);
     2943    ret = error2WinError(rc, ERROR_INVALID_PARAMETER);
     2944    SetLastError(ret);
     2945    return ret;
     2946}
     2947//******************************************************************************
     2948//******************************************************************************
     2949void  OSLibDosSleep(ULONG msecs)
     2950{
     2951  DosSleep(msecs);
     2952}
     2953//******************************************************************************
     2954//******************************************************************************
    29012955DWORD OSLibDosDevConfig(PVOID pdevinfo,
    29022956                         ULONG item)
     
    29042958  return (DWORD)DosDevConfig(pdevinfo, item);
    29052959}
     2960//******************************************************************************
     2961//******************************************************************************
  • trunk/src/kernel32/oslibdos.h

    r7482 r7532  
    1 /* $Id: oslibdos.h,v 1.40 2001-11-29 10:53:28 phaller Exp $ */
     1/* $Id: oslibdos.h,v 1.41 2001-12-03 12:13:09 sandervl Exp $ */
    22
    33/*
     
    359359
    360360DWORD OSLibDosDevConfig(PVOID pdevinfo, ULONG item);
     361void  OSLibDosSleep(ULONG msecs);
     362
     363DWORD OSLibDosSetPriority(ULONG tid, int priority);
    361364
    362365#endif //__OSLIBDOS_H__
  • trunk/src/kernel32/thread.cpp

    r7519 r7532  
    1 /* $Id: thread.cpp,v 1.37 2001-12-01 20:41:37 sandervl Exp $ */
     1/* $Id: thread.cpp,v 1.38 2001-12-03 12:13:10 sandervl Exp $ */
    22
    33/*
     
    3939ODINDEBUGCHANNEL(KERNEL32-THREAD)
    4040
    41 
    42 // The function GetThreadTEB() is defined in wprocess.cpp
    43 // This macro is for performance improvement only.
    44 // DWORD TIBFlatPtr is exported from wprocess.cpp
    45 #define GetThreadTEB() (TIBFlatPtr) ? ((TEB *)*TIBFlatPtr) : 0
    46 
     41static ULONG priorityclass = NORMAL_PRIORITY_CLASS;
    4742
    4843//******************************************************************************
     
    7469    return teb->o.odin.hThread;
    7570}
    76 
     71//******************************************************************************
    7772// these two debugging functions allow access to a
    7873// calldepth counter inside the TEB block of each thread
     74//******************************************************************************
    7975ULONG WIN32API dbg_GetThreadCallDepth()
    8076{
     
    9187#endif
    9288}
    93 
    94 
     89//******************************************************************************
     90//******************************************************************************
    9591void WIN32API dbg_IncThreadCallDepth()
    9692{
     
    10399#endif
    104100}
    105 
    106 
     101//******************************************************************************
    107102#define MAX_CALLSTACK_SIZE 128
     103//******************************************************************************
    108104void WIN32API dbg_ThreadPushCall(char *pszCaller)
    109105{
     
    130126#endif
    131127}
    132 
    133 
     128//******************************************************************************
     129//******************************************************************************
    134130void WIN32API dbg_DecThreadCallDepth()
    135131{
     
    142138#endif
    143139}
    144 
    145 
     140//******************************************************************************
     141//******************************************************************************
    146142void WIN32API dbg_ThreadPopCall()
    147143{
     
    165161#endif
    166162}
    167 
     163//******************************************************************************
     164//******************************************************************************
    168165char* WIN32API dbg_GetLastCallerName()
    169166{
     
    187184  return NULL;
    188185}
    189 
    190 
    191186//******************************************************************************
    192187//******************************************************************************
     
    247242//******************************************************************************
    248243//******************************************************************************
     244VOID WIN32API Sleep(DWORD mSecs)
     245{
     246    dprintf2(("KERNEL32: Sleep %d", mSecs));
     247    OSLibDosSleep(mSecs);
     248}
     249//******************************************************************************
     250//******************************************************************************
     251DWORD WIN32API GetPriorityClass(HANDLE hProcess)
     252{
     253    dprintf(("KERNEL32: GetPriorityClass %x", hProcess));
     254    return priorityclass;
     255//    return O32_GetPriorityClass(hProcess);
     256}
     257//******************************************************************************
     258//******************************************************************************
     259BOOL WIN32API SetPriorityClass(HANDLE hProcess, DWORD dwPriority)
     260{
     261    dprintf(("KERNEL32: SetPriorityClass %x %x", hProcess, dwPriority));
     262    priorityclass = dwPriority;
     263    return TRUE;
     264//    return O32_SetPriorityClass(hProcess, dwPriority);
     265}
     266//******************************************************************************
     267//******************************************************************************
    249268Win32Thread::Win32Thread(LPTHREAD_START_ROUTINE pUserCallback, LPVOID lpData, DWORD dwFlags, HANDLE hThread)
    250269{
  • trunk/src/kernel32/wprocess.cpp

    r7519 r7532  
    1 /* $Id: wprocess.cpp,v 1.138 2001-12-01 20:41:38 sandervl Exp $ */
     1/* $Id: wprocess.cpp,v 1.139 2001-12-03 12:13:10 sandervl Exp $ */
    22
    33/*
     
    183183    winteb->tls_ptr     = &winteb->tls_array[0];   /* 2c Pointer to TLS array */
    184184    winteb->process     = &ProcessPDB;             /* 30 owning process (used by NT3.51 applets)*/
    185 
     185   
     186    winteb->delta_priority  = THREAD_PRIORITY_NORMAL;
    186187    winteb->process         = &ProcessPDB;
    187188////    winteb->exit_code       = 0x103; /* STILL_ACTIVE */
     
    19351936  else  return O32_WaitForInputIdle(hProcess, dwTimeOut);
    19361937}
    1937 //******************************************************************************
    1938 //******************************************************************************
    1939 VOID WIN32API Sleep(DWORD arg1)
    1940 {
    1941     dprintf2(("KERNEL32:  Sleep %d\n", arg1));
    1942     O32_Sleep(arg1);
    1943 }
    1944 //******************************************************************************
    1945 //******************************************************************************
    1946 DWORD WIN32API GetPriorityClass(HANDLE hProcess)
    1947 {
    1948     dprintf(("KERNEL32: GetPriorityClass %x", hProcess));
    1949     return O32_GetPriorityClass(hProcess);
    1950 }
    1951 //******************************************************************************
    1952 //******************************************************************************
    1953 BOOL WIN32API SetPriorityClass(HANDLE hProcess, DWORD dwPriority)
    1954 {
    1955     dprintf(("KERNEL32: SetPriorityClass %x %x", hProcess, dwPriority));
    1956     return O32_SetPriorityClass(hProcess, dwPriority);
    1957 }
    19581938/**********************************************************************
    19591939 * LoadModule    (KERNEL32.499)
Note: See TracChangeset for help on using the changeset viewer.