1 //////////////////////////////////////////////////////////////////////////////////// 2 // w32chan.h Fish's new i/o scheduling logic 3 //////////////////////////////////////////////////////////////////////////////////// 4 // (c) Copyright "Fish" (David B. Trout), 2001-2009. Released under the Q Public License 5 // (http://www.hercules-390.org/herclic.html) as modifications to Hercules. 6 //////////////////////////////////////////////////////////////////////////////////// 7 8 #ifndef _W32CHANN_H_ 9 #define _W32CHANN_H_ 10 11 ///////////////////////////////////////////////////////////////////////////// 12 // I/O Scheduler functions... 13 14 extern void InitIOScheduler // initialize i/o scheduler vars 15 16 // Only call this function ONCE -- at startup! From 17 // then on, just set the variables directly as needed. 18 19 ( 20 int arch_mode, // (for calling execute_ccw_chain) 21 int* devt_prio, // (ptr to device thread priority) 22 int devt_timeout, // (maximum device thread wait time) 23 long devt_max // (maximum #of device threads allowed) 24 ); 25 26 extern int ScheduleIORequest(void* pDevBlk, unsigned short wDevNum, int* pnDevPrio); 27 extern void TrimDeviceThreads(); 28 extern void KillAllDeviceThreads(); 29 30 ///////////////////////////////////////////////////////////////////////////// 31 // I/O Scheduler variables... 32 33 extern long ios_devtwait; // #of threads currently idle 34 extern int ios_devtnbr; // #of threads currently active 35 extern int ios_devthwm; // max #of threads that WERE active 36 extern int ios_devtmax; // max #of threads there can be 37 extern int ios_devtunavail; // #of times 'idle' thread unavailable 38 extern int ios_arch_mode; // architectural mode 39 40 ///////////////////////////////////////////////////////////////////////////// 41 42 #endif // _W32CHANN_H_ 43