wok-6.x rev 13542
sudo-pam: fix (by xj); wine-rt: add (by xj); qjackctl: up 0.3.9
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Tue Oct 30 04:33:32 2012 +0000 (2012-10-30) |
parents | 67ed620748b8 |
children | d53ecda155fa |
files | qjackctl/receipt sudo-pam/receipt sudo-pam/stuff/sudo wine-rt/receipt wine-rt/stuff/applications/notepad.desktop wine-rt/stuff/applications/winecfg.desktop wine-rt/stuff/applications/winefile.desktop wine-rt/stuff/wine-rt-101107.patch wine-rt/stuff/wine.png |
line diff
1.1 --- a/qjackctl/receipt Mon Oct 29 13:27:29 2012 +0000 1.2 +++ b/qjackctl/receipt Tue Oct 30 04:33:32 2012 +0000 1.3 @@ -1,36 +1,36 @@ 1.4 # SliTaz package receipt. 1.5 1.6 PACKAGE="qjackctl" 1.7 -VERSION="0.3.6" 1.8 +VERSION="0.3.9" 1.9 CATEGORY="multimedia" 1.10 SHORT_DESC="Application to Control Jack" 1.11 MAINTAINER="allan316@gmail.com" 1.12 -BUILD_DEPENDS="qmake Qt4-dev jack-audio-connection-kit jack-audio-connection-kit-dev xorg-xproto xorg-libX11-dev" 1.13 -DEPENDS="jack-audio-connection-kit libQtCore libQtGui libQtXml alsa-lib \ 1.14 -expat fontconfig freetype glib xorg-libICE xorg-libSM xorg-libX11 \ 1.15 -xorg-libXau xorg-libXdmcp xorg-libXext xorg-libXi xorg-libXrandr \ 1.16 -xorg-libXrender zlib libpng" 1.17 +WEB_SITE="http://qjackctl.sourceforge.net" 1.18 TARBALL="$PACKAGE-$VERSION.tar.gz" 1.19 -WEB_SITE="http://qjackctl.sourceforge.net" 1.20 WGET_URL="http://nchc.dl.sourceforge.net/sourceforge/qjackctl/$TARBALL" 1.21 + 1.22 +DEPENDS="alsa-lib bzlib expat fontconfig freetype gcc-lib-base glib \ 1.23 +glibc-base jack-audio-connection-kit libffi libpng libQtCore libQtDBus \ 1.24 +libQtGui libQtXml libxcb util-linux-ng-uuid xorg-libICE xorg-libSM \ 1.25 +xorg-libX11 xorg-libXau xorg-libXdmcp xorg-libXext xorg-libXrender zlib" 1.26 +BUILD_DEPENDS="qmake Qt4-dev jack-audio-connection-kit \ 1.27 +jack-audio-connection-kit-dev xorg-xproto xorg-libX11-dev" 1.28 TAGS="audio sound" 1.29 1.30 # Rules to configure and make the package. 1.31 compile_rules() 1.32 { 1.33 cd $src 1.34 - sed -i 's|^LIBS.*|& -Wl,--copy-dt-needed-entries -lX11|' qjackctl.pro.in 1.35 - ./configure --prefix=/usr --infodir=/usr/share/info \ 1.36 - --mandir=/usr/share/man $CONFIGURE_ARGS && 1.37 - make -j1 && 1.38 - make -j1 DESTDIR=$PWD/_pkg install 1.39 + #sed -i 's|^LIBS.*|& -Wl,--copy-dt-needed-entries -lX11|' qjackctl.pro.in 1.40 + ./configure $CONFIGURE_ARGS && 1.41 + make && 1.42 + make DESTDIR=$PWD/_pkg install 1.43 } 1.44 1.45 # Rules to gen a SliTaz package suitable for Tazpkg. 1.46 genpkg_rules() 1.47 { 1.48 - mkdir -p $fs/usr 1.49 - cp -a $_pkg/usr/bin $fs/usr 1.50 - cp -a $_pkg/usr/share $fs/usr 1.51 + cp -a $_pkg/usr $fs 1.52 + #rm -rf $fs/usr/share/man 1.53 } 1.54
2.1 --- a/sudo-pam/receipt Mon Oct 29 13:27:29 2012 +0000 2.2 +++ b/sudo-pam/receipt Tue Oct 30 04:33:32 2012 +0000 2.3 @@ -1,7 +1,7 @@ 2.4 # SliTaz package receipt. 2.5 2.6 PACKAGE="sudo-pam" 2.7 -VERSION="1.8.4" 2.8 +VERSION="1.8.6p3" 2.9 CATEGORY="security" 2.10 SHORT_DESC="Sudo (su \"do\") allows a system administrator to delegate authority using PAM." 2.11 MAINTAINER="erjo@slitaz.org" 2.12 @@ -31,12 +31,12 @@ 2.13 genpkg_rules() 2.14 { 2.15 mkdir -p $fs/usr/lib 2.16 - mkdir -p $fs/etc 2.17 + mkdir -p $fs/etc/pam.d 2.18 cp -a $_pkg/usr/bin $fs/usr 2.19 cp -a $_pkg/usr/sbin $fs/usr 2.20 + cp -a $_pkg/etc/sudoers $fs/etc/ 2.21 + cp -a $stuff/sudo $fs/etc/pam.d/ 2.22 cp -a $_pkg/usr/lib/*.so $fs/usr/lib 2.23 - cp -a $WOK/sudo/stuff/sudoers $fs/etc 2.24 - cp -a $stuff/* $fs 2.25 } 2.26 2.27 pre_install()
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/sudo-pam/stuff/sudo Tue Oct 30 04:33:32 2012 +0000 3.3 @@ -0,0 +1,7 @@ 3.4 +#%PAM-1.0 3.5 +# specify the PAM fallback behaviour 3.6 + 3.7 +auth required pam_unix.so 3.8 +account required pam_unix.so 3.9 +password required pam_unix.so md5 3.10 +session required pam_limits.so
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/wine-rt/receipt Tue Oct 30 04:33:32 2012 +0000 4.3 @@ -0,0 +1,66 @@ 4.4 +# SliTaz package receipt. 4.5 + 4.6 +PACKAGE="wine-rt" 4.7 +VERSION="1.5.15" 4.8 +CATEGORY="misc" 4.9 +SHORT_DESC="Windows API for Linux." 4.10 +MAINTAINER="xj@wp.pl" 4.11 +TARBALL="${PACKAGE%-rt}-$VERSION.tar.bz2" 4.12 +WEB_SITE="http://www.winehq.org/" 4.13 +WGET_URL="$SF_MIRROR/${PACKAGE%-rt}/$TARBALL" 4.14 +TAGS="windows" 4.15 +PROVIDE="wine" 4.16 + 4.17 +DEPENDS="alsa-lib libxml2 libxslt mesa libglu-mesa xorg-dev lcms freetype" 4.18 +BUILD_DEPENDS="alsa-lib-dev flex bison mesa-dev freetype-dev libtool \ 4.19 +libxml2-dev libxslt-dev lcms-dev" 4.20 + 4.21 +# Rules to configure and make the package. 4.22 +compile_rules() 4.23 +{ 4.24 + cd $src 4.25 + patch -s -Np1 -i $stuff/wine-rt-101107.patch 4.26 + 4.27 +CONFIGURE_ARGS=' 4.28 + --prefix=/usr 4.29 + --disable-tests 4.30 + --without-capi 4.31 + --without-cms 4.32 + --without-coreaudio 4.33 + --without-cups 4.34 + --without-gphoto 4.35 + --without-gnutls 4.36 + --without-gsm 4.37 + --without-ldap 4.38 + --without-mpg123 4.39 + --without-openal 4.40 + --without-opencl 4.41 + --without-openssl 4.42 + --without-oss 4.43 + --without-sane 4.44 + --without-v4l 4.45 + --disable-win16 4.46 + --with-x 4.47 +' 4.48 + CFLAGS="$CFLAGS -O2 -funroll-loops -frounding-math -mfpmath=sse -msse2 \ 4.49 + -fsignaling-nans -pipe" 4.50 + 4.51 + ./configure $CONFIGURE_ARGS && 4.52 + make $MAKEFLAGS && make install 4.53 +} 4.54 + 4.55 +# Rules to gen a SliTaz package suitable for Tazpkg. 4.56 +genpkg_rules() 4.57 +{ 4.58 + mkdir -p $fs/usr/lib/wine $fs/usr/share 4.59 + cp -a $install/usr/bin $fs/usr 4.60 + cp -a $install/usr/share/wine $fs/usr/share 4.61 + cp -a $install/usr/share/applications $fs/usr/share 4.62 + cp -a $install/usr/lib/lib* $fs/usr/lib 4.63 + cp -a $install/usr/lib/wine/*.so $fs/usr/lib/wine 4.64 +} 4.65 + 4.66 +post_install() 4.67 +{ 4.68 + modprobe snd-seq 2>/dev/null 4.69 +}
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/wine-rt/stuff/applications/notepad.desktop Tue Oct 30 04:33:32 2012 +0000 5.3 @@ -0,0 +1,11 @@ 5.4 +[Desktop Entry] 5.5 +Encoding=UTF-8 5.6 +Name=Wine Notepad 5.7 +Name[fr]=Bloc-notes Wine 5.8 +Name[ru]=Блокнот Wine 5.9 +Exec=notepad %f 5.10 +Icon=accessories-text-editor 5.11 +Terminal=false 5.12 +Type=Application 5.13 +MimeType=text/plain 5.14 +Categories=Utility;TextEditor;
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/wine-rt/stuff/applications/winecfg.desktop Tue Oct 30 04:33:32 2012 +0000 6.3 @@ -0,0 +1,11 @@ 6.4 +[Desktop Entry] 6.5 +Encoding=UTF-8 6.6 +Name=Wine Configuration 6.7 +Name[fr]=Configuration de Wine 6.8 +Name[ru]=Параметры Wine 6.9 +Exec=winecfg 6.10 +Icon=wine 6.11 +Terminal=false 6.12 +Type=Application 6.13 +MimeType=text/plain 6.14 +Categories=System
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/wine-rt/stuff/applications/winefile.desktop Tue Oct 30 04:33:32 2012 +0000 7.3 @@ -0,0 +1,11 @@ 7.4 +[Desktop Entry] 7.5 +Encoding=UTF-8 7.6 +Name=Wine File Manager 7.7 +Name[fr]=Gestionnaire de fichiers Wine 7.8 +Name[ru]=Проводник Wine 7.9 +Exec=winefile %f 7.10 +Icon=file-manager 7.11 +Terminal=false 7.12 +Type=Application 7.13 +MimeType=text/plain 7.14 +Categories=System
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/wine-rt/stuff/wine-rt-101107.patch Tue Oct 30 04:33:32 2012 +0000 8.3 @@ -0,0 +1,264 @@ 8.4 +From 1dceb627db51a239a63ed5276f7e8911be6751bc Mon Sep 17 00:00:00 2001 8.5 +From: Joakim B Hernberg <jhernberg@alchemy.lu> 8.6 +Date: Sun, 7 Nov 2010 19:10:49 +0100 8.7 +Subject: [PATCH] 3:rd wine-rt patch 101107 8.8 + 8.9 +--- 8.10 + README.WINE-RT | 27 +++++++++++++++++ 8.11 + server/main.c | 60 ++++++++++++++++++++++++++++++++++++++ 8.12 + server/thread.c | 87 ++++++++++++++++++++++++++++++++++++++++++------------ 8.13 + 3 files changed, 154 insertions(+), 20 deletions(-) 8.14 + create mode 100644 README.WINE-RT 8.15 + 8.16 +diff --git a/README.WINE-RT b/README.WINE-RT 8.17 +new file mode 100644 8.18 +index 0000000..3f3f2c1 8.19 +--- /dev/null 8.20 ++++ b/README.WINE-RT 8.21 +@@ -0,0 +1,27 @@ 8.22 ++What is it? 8.23 ++The Wine-RT patch allows programs that use windows' concept of thread priority to gain similar functionality under linux. It maps windows priority levels to linux scheduling policies. THREAD_PRIORITY_ABOVE_NORMAL, THREAD_PRIORITY_HIGHEST and THREAD_PRIORITY_TIME_CRITICAL levels which are made to run as linux SCHED_FIFO threads at priority levels that are defined by the WINERT variable. THREAD_PRIORITY_NORMAL threads are run as normal linux threads (as all threads are without the patch), and the priorities below normal (THREAD_PRIORITY_BELOW_NORMAL, THREAD_PRIORITY_LOWEST) are run as SCHED_BATCH. THREAD_PRIORITY_IDLE threads are run as SCHED_IDLE. 8.24 ++Windows' concept of priority classes is not implemented at all. 8.25 ++ 8.26 ++Please note that threads running SCHED_FIFO might hang your entire system, so please exercise caution! 8.27 ++ 8.28 ++How does it work? 8.29 ++When a windows program asks for a thread to be run at a higher priority, Wine will ask the linux system to schedule it as a SCHED_FIFO thread, which means that the tread will keep on executing until it has either finished, voluntarily yields execution or gets preempted by a higher priority SCHED_FIFO thread. This is already done by many linux audio applications, to ensure less xruns on lower buffer sizes. With Wine-RT, the same thing can be done for Wine applications. 8.30 ++ 8.31 ++How to use it? 8.32 ++The Wine-RT functionality is not enabled by default. Instead it is controlled by 2 environment variables "WINE_RT" and "WINE_SRV_RT". 8.33 ++ 8.34 ++The "WINE_RT" variable has 2 purposes, it has to be set in order to activate the patch, and it determines the priority of the SCHED_FIFO threads, Its value can be set from 1 to your system's rtprio max value minus 10, as set in limits.conf or limits.d/audio.conf. (In Debian, Ubuntu and KXStudio this value is 99). THREAD_PRIORITY_ABOVE_NORMAL threads will run at this priority level, THREAD_PRIORITY_HIGHEST threads at this level + 5, and THREAD_PRIORITY_TIME_CRITICAL threads at this level + 10. 8.35 ++ 8.36 ++WINE_SRV_RT makes the wineserver main thread run SCHED_FIFO. Valid values range from 1 to your system's rtprio max value. 8.37 ++ 8.38 ++We can set these variables in 2 simple ways. 8.39 ++First one is using a terminal with "exports", like this: 8.40 ++export WINE_RT=# 8.41 ++export WINE_SRV_RT=# 8.42 ++wine <app> 8.43 ++ 8.44 ++or just prefix your application with 'env VARIABLE=value', like this: 8.45 ++env WINE_RT=# WINE_SRV_RT=# wine <app> 8.46 ++ 8.47 ++A recommended starting point might be "env WINE_RT=15 WINE_SRV_RT=10 wine appname.exe". 8.48 ++ 8.49 +diff --git a/server/main.c b/server/main.c 8.50 +index 2d841e8..a89d1e0 100644 8.51 +--- a/server/main.c 8.52 ++++ b/server/main.c 8.53 +@@ -27,10 +27,18 @@ 8.54 + #include <stdio.h> 8.55 + #include <stdlib.h> 8.56 + #include <sys/time.h> 8.57 ++#include <sys/resource.h> 8.58 ++#include <sys/mman.h> 8.59 + #include <unistd.h> 8.60 + #ifdef HAVE_GETOPT_H 8.61 + # include <getopt.h> 8.62 + #endif 8.63 ++#ifdef HAVE_SCHED_H 8.64 ++#include <sched.h> 8.65 ++#ifndef SCHED_NORMAL 8.66 ++#define SCHED_NORMAL SCHED_OTHER 8.67 ++#endif 8.68 ++#endif 8.69 + 8.70 + #include "object.h" 8.71 + #include "file.h" 8.72 +@@ -44,6 +52,9 @@ int foreground = 0; 8.73 + timeout_t master_socket_timeout = 3 * -TICKS_PER_SEC; /* master socket timeout, default is 3 seconds */ 8.74 + const char *server_argv0; 8.75 + 8.76 ++/* global variable used here and in thread.c to determine whether wine runs with rt threads and at what base value */ 8.77 ++int base_rt_priority = -1; 8.78 ++ 8.79 + /* parse-line args */ 8.80 + 8.81 + static void usage(void) 8.82 +@@ -125,6 +136,51 @@ static void sigterm_handler( int signum ) 8.83 + exit(1); /* make sure atexit functions get called */ 8.84 + } 8.85 + 8.86 ++#ifdef HAVE_SCHED_H 8.87 ++void init_rt_scheduling( void ) 8.88 ++{ 8.89 ++ struct sched_param param; 8.90 ++ struct rlimit limit; 8.91 ++ int priority_max, policy, wine_server_rt_priority; 8.92 ++ char *enviroment, *endptr; 8.93 ++ 8.94 ++ getrlimit( RLIMIT_RTPRIO, &limit ); 8.95 ++ priority_max = limit.rlim_max; 8.96 ++ 8.97 ++ /* check for realtime mode and set the base priority level */ 8.98 ++ 8.99 ++ if (!(enviroment = getenv( "WINE_RT" ))) 8.100 ++ return; 8.101 ++ base_rt_priority = (int) strtol( enviroment, &endptr, 10 ); 8.102 ++ if (enviroment == endptr || base_rt_priority == 0 || base_rt_priority > priority_max - 10) 8.103 ++ { 8.104 ++ fprintf( stderr, "Unable to run WINE in rt mode, WINE_RT values supported on this system range from 1 to %i\n", priority_max - 10 ); 8.105 ++ base_rt_priority = -1; 8.106 ++ return; 8.107 ++ } 8.108 ++ fprintf( stderr, "WINE realtime scheduling hack enabled, realtime base priority has been set to %i\n", base_rt_priority ); 8.109 ++ 8.110 ++ /* determine scheduling policy for the main wineserver thread */ 8.111 ++ 8.112 ++ if (!(enviroment = getenv( "WINE_SRV_RT" ))) 8.113 ++ { 8.114 ++ fprintf( stderr, "wineserver running SCHED_NORMAL\n" ); 8.115 ++ return; 8.116 ++ } 8.117 ++ wine_server_rt_priority = (int) strtol( enviroment, &endptr, 10 ); 8.118 ++ if (enviroment == endptr || wine_server_rt_priority == 0 || wine_server_rt_priority > priority_max) 8.119 ++ { 8.120 ++ fprintf( stderr, "Unable to run the wineserver SCHED_FIFO, valid WINE_SRV_RT values range from 1 to %i\n", priority_max ); 8.121 ++ return; 8.122 ++ } 8.123 ++ fprintf( stderr, "wineserver running SCHED_FIFO at priority %i\n", wine_server_rt_priority ); 8.124 ++ policy = SCHED_FIFO; 8.125 ++ param.sched_priority = wine_server_rt_priority; 8.126 ++ if (sched_setscheduler ( 0, policy, ¶m) != 0) 8.127 ++ fprintf (stderr, "Error scheduling wineserver as SCHED_FIFO\n"); 8.128 ++} 8.129 ++#endif 8.130 ++ 8.131 + int main( int argc, char *argv[] ) 8.132 + { 8.133 + setvbuf( stderr, NULL, _IOLBF, 0 ); 8.134 +@@ -138,6 +194,10 @@ int main( int argc, char *argv[] ) 8.135 + signal( SIGTERM, sigterm_handler ); 8.136 + signal( SIGABRT, sigterm_handler ); 8.137 + 8.138 ++#ifdef HAVE_SCHED_H 8.139 ++ init_rt_scheduling(); 8.140 ++#endif 8.141 ++ mlockall(MCL_FUTURE); 8.142 + sock_init(); 8.143 + open_master_socket(); 8.144 + 8.145 +diff --git a/server/thread.c b/server/thread.c 8.146 +index 05e4121..2d103b4 100644 8.147 +--- a/server/thread.c 8.148 ++++ b/server/thread.c 8.149 +@@ -32,11 +32,18 @@ 8.150 + #include <sys/types.h> 8.151 + #include <unistd.h> 8.152 + #include <time.h> 8.153 +-#ifdef HAVE_POLL_H 8.154 +-#include <poll.h> 8.155 +-#endif 8.156 + #ifdef HAVE_SCHED_H 8.157 + #include <sched.h> 8.158 ++#ifndef SCHED_NORMAL 8.159 ++#define SCHED_NORMAL SCHED_OTHER 8.160 ++#endif 8.161 ++#ifndef SCHED_IDLE 8.162 ++#define SCHED_IDLE 5 /* missing from my glibc, taken from linux/sched.h */ 8.163 ++#endif 8.164 ++#endif 8.165 ++ 8.166 ++#ifdef HAVE_POLL_H 8.167 ++#include <poll.h> 8.168 + #endif 8.169 + 8.170 + #include "ntstatus.h" 8.171 +@@ -164,6 +171,8 @@ static const struct fd_ops thread_fd_ops = 8.172 + 8.173 + static struct list thread_list = LIST_INIT(thread_list); 8.174 + 8.175 ++extern int base_rt_priority; 8.176 ++ 8.177 + /* initialize the structure for a newly allocated thread */ 8.178 + static inline void init_thread_structure( struct thread *thread ) 8.179 + { 8.180 +@@ -432,29 +441,67 @@ int set_thread_affinity( struct thread *thread, affinity_t affinity ) 8.181 + return ret; 8.182 + } 8.183 + 8.184 +-#define THREAD_PRIORITY_REALTIME_HIGHEST 6 8.185 +-#define THREAD_PRIORITY_REALTIME_LOWEST -7 8.186 ++void set_thread_priority( struct thread *thread, int priority ) 8.187 ++{ 8.188 ++#ifdef HAVE_SCHED_H 8.189 ++ struct sched_param param; 8.190 ++ int policy; 8.191 ++ 8.192 ++ if (base_rt_priority == -1 || (thread->unix_tid == -1)) return; 8.193 ++ 8.194 ++ switch (priority) 8.195 ++ { 8.196 ++ case THREAD_PRIORITY_TIME_CRITICAL: 8.197 ++ param.sched_priority = base_rt_priority + 10; 8.198 ++ policy = SCHED_FIFO; 8.199 ++ fprintf( stderr, "Thread %i at THREAD_PRIORITY_TIME_CRITICAL set to SCHED_FIFO - priority %i\n", thread->unix_tid, param.sched_priority ); 8.200 ++ break; 8.201 ++ case THREAD_PRIORITY_HIGHEST: 8.202 ++ param.sched_priority = base_rt_priority + 5; 8.203 ++ policy = SCHED_FIFO; 8.204 ++ fprintf( stderr, "Thread %i at THREAD_PRIORITY_HIGHEST set to SCHED_FIFO - priority %i\n", thread->unix_tid, param.sched_priority ); 8.205 ++ break; 8.206 ++ case THREAD_PRIORITY_ABOVE_NORMAL: 8.207 ++ param.sched_priority = base_rt_priority; 8.208 ++ policy = SCHED_FIFO; 8.209 ++ fprintf( stderr, "Thread %i at THREAD_PRIORITY_ABOVE_NORMAL set to SCHED_FIFO - priority %i\n", thread->unix_tid, param.sched_priority ); 8.210 ++ break; 8.211 ++ case THREAD_PRIORITY_NORMAL: 8.212 ++ param.sched_priority = 0; 8.213 ++ policy = SCHED_NORMAL; 8.214 ++ fprintf( stderr, "Setting thread %i at level THREAD_PRIORITY_NORMAL to SCHED_NORMAL\n", thread->unix_tid ); 8.215 ++ break; 8.216 ++ case THREAD_PRIORITY_BELOW_NORMAL: 8.217 ++ param.sched_priority = 0; 8.218 ++ policy = SCHED_BATCH; 8.219 ++ fprintf( stderr, "Setting thread %i at level THREAD_PRIORITY_BELOW_NORMAL to SCHED_BATCH\n", thread->unix_tid ); 8.220 ++ break; 8.221 ++ case THREAD_PRIORITY_LOWEST: 8.222 ++ param.sched_priority = 0; 8.223 ++ policy = SCHED_BATCH; 8.224 ++ fprintf( stderr, "Setting thread %i at THREAD_PRIORITY_LOWEST level to SCHED_BATCH\n", thread->unix_tid ); 8.225 ++ break; 8.226 ++ case THREAD_PRIORITY_IDLE: 8.227 ++ param.sched_priority = 0; 8.228 ++ policy = SCHED_IDLE; 8.229 ++ fprintf( stderr, "Setting thread %i with level THREAD_PRIORITY_IDLE to SCHED_IDLE\n", thread->unix_tid ); 8.230 ++ break; 8.231 ++ default: 8.232 ++ fprintf( stderr, "Error setting scheduling priority level, unknown should never come here\n" ); 8.233 ++ return; 8.234 ++ } 8.235 ++ if (sched_setscheduler (thread->unix_tid, policy, ¶m) != 0) fprintf (stderr, "Error setting priorities\n"); 8.236 ++ thread->priority = priority; 8.237 ++ return; 8.238 ++#endif 8.239 ++} 8.240 + 8.241 + /* set all information about a thread */ 8.242 + static void set_thread_info( struct thread *thread, 8.243 + const struct set_thread_info_request *req ) 8.244 + { 8.245 + if (req->mask & SET_THREAD_INFO_PRIORITY) 8.246 +- { 8.247 +- int max = THREAD_PRIORITY_HIGHEST; 8.248 +- int min = THREAD_PRIORITY_LOWEST; 8.249 +- if (thread->process->priority == PROCESS_PRIOCLASS_REALTIME) 8.250 +- { 8.251 +- max = THREAD_PRIORITY_REALTIME_HIGHEST; 8.252 +- min = THREAD_PRIORITY_REALTIME_LOWEST; 8.253 +- } 8.254 +- if ((req->priority >= min && req->priority <= max) || 8.255 +- req->priority == THREAD_PRIORITY_IDLE || 8.256 +- req->priority == THREAD_PRIORITY_TIME_CRITICAL) 8.257 +- thread->priority = req->priority; 8.258 +- else 8.259 +- set_error( STATUS_INVALID_PARAMETER ); 8.260 +- } 8.261 ++ set_thread_priority( thread, req->priority ); 8.262 + if (req->mask & SET_THREAD_INFO_AFFINITY) 8.263 + { 8.264 + if ((req->affinity & thread->process->affinity) != req->affinity) 8.265 +-- 8.266 +1.7.3.2 8.267 +
9.1 Binary file wine-rt/stuff/wine.png has changed