#! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'TRACE/README' <<'END_OF_FILE' This directory contains the source code for the trace facility for the SCHEDULE package. It has been implemented in both Sunview and X. To make an executable, go to the desired directory X(SUNVIEW or X) and type make. I have tried to keep the window dependent code down to a minimum. The majority of the code is in the directory "src", which both versions use. The X version is not as functional as the SUNVIEW version; it does not have menus implemented. Both versions will run on either monochrome or color Suns. Of course, the X version should run on any workstation that supports X. However, with System V there is an incompatiblity in the module src/load.c (when sched.trace searches a directory for trace files). The structures used for directory descriptors are different. There are example trace file included. X X Orlie Brewer X Mathematics and Computer Science Division, Argonne National Laboratory X 9700 South Cass Avenue, Argonne, Illinois 60439 X (312) 972 - 5094, brewer@mcs.anl.gov END_OF_FILE if test 1002 -ne `wc -c <'TRACE/README'`; then echo shar: \"'TRACE/README'\" unpacked with wrong size! fi # end of 'TRACE/README' fi if test ! -d 'TRACE/SUNVIEW' ; then echo shar: Creating directory \"'TRACE/SUNVIEW'\" mkdir 'TRACE/SUNVIEW' fi if test ! -d 'TRACE/X' ; then echo shar: Creating directory \"'TRACE/X'\" mkdir 'TRACE/X' fi if test -f 'TRACE/shar_me' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/shar_me'\" else echo shar: Extracting \"'TRACE/shar_me'\" \(92 characters\) sed "s/^X//" >'TRACE/shar_me' <<'END_OF_FILE' shar TRACE TRACE/X TRACE/src TRACE/trace.* TRACE/README TRACE/X/* TRACE/src/* > TRACE.shar END_OF_FILE if test 92 -ne `wc -c <'TRACE/shar_me'`; then echo shar: \"'TRACE/shar_me'\" unpacked with wrong size! fi chmod +x 'TRACE/shar_me' # end of 'TRACE/shar_me' fi if test ! -d 'TRACE/src' ; then echo shar: Creating directory \"'TRACE/src'\" mkdir 'TRACE/src' fi if test -f 'TRACE/trace.100' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/trace.100'\" else echo shar: Extracting \"'TRACE/trace.100'\" \(1389 characters\) sed "s/^X//" >'TRACE/trace.100' <<'END_OF_FILE' X 8 X 0 3 1 1 2 aaa X 0 2 1 1 1 aaa X 0 5 1 1 4 aaa X 0 4 1 1 1 aaa X 0 7 1 1 6 aaa X 0 6 1 1 1 aaa X 0 9 1 1 8 aaa X 0 8 1 1 1 aaa X 0 11 1 1 10 aaa X 0 10 1 1 1 aaa X 0 1 5 0 xxx X 0 12 0 5 3 5 7 9 11 zzz X 1 12 7.90000021E-01 1 X 2 12 7.90000021E-01 X 1 3 7.90000021E-01 1 X 1 5 7.90000021E-01 2 X 1 7 7.90000021E-01 3 X 1 9 7.90000021E-01 4 X 1 11 7.90000021E-01 5 X 2 7 1.38999999E+00 X 1 6 1.38999999E+00 3 X 2 6 1.40999997E+00 X 2 11 1.41999996E+00 X 1 10 1.41999996E+00 3 X 2 9 1.41999996E+00 X 1 8 1.41999996E+00 4 X 2 10 1.44000006E+00 X 2 3 1.44000006E+00 X 2 8 1.44000006E+00 X 1 2 1.44000006E+00 3 X 2 2 1.47000003E+00 X 2 5 1.47000003E+00 X 1 4 1.47000003E+00 2 X 2 4 1.49000001E+00 X 1 1 1.49000001E+00 2 X 2 1 1.50000000E+00 END_OF_FILE if test 1389 -ne `wc -c <'TRACE/trace.100'`; then echo shar: \"'TRACE/trace.100'\" unpacked with wrong size! fi # end of 'TRACE/trace.100' fi if test -f 'TRACE/trace.b21eig' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/trace.b21eig'\" else echo shar: Extracting \"'TRACE/trace.b21eig'\" \(8160 characters\) sed "s/^X//" >'TRACE/trace.b21eig' <<'END_OF_FILE' X 20 X 0 1 2 0 X sesupd X 0 2 2 1 1 X sesupd X 0 3 2 1 1 X sesupd X 0 4 2 1 2 X sesupd X 0 5 2 1 2 X sesupd X 0 6 2 1 3 X sesupd X 0 7 2 1 3 X sesupd X 0 8 0 1 4 X tql2 X 0 9 0 1 4 X tql2 X 0 10 0 1 5 X tql2 X 0 11 0 1 5 X tql2 X 0 12 0 1 6 X tql2 X 0 13 0 1 6 X tql2 X 0 14 0 1 7 X tql2 X 0 15 0 1 7 X tql2 X 1 8 3.36000000E+00 9 X 1 15 1.25000000E+00 16 X 1 14 1.56000000E+00 15 X 1 9 3.06000000E+00 10 X 1 13 1.86000000E+00 14 X 1 10 2.76000000E+00 11 X 1 12 2.16000000E+00 13 X 1 11 2.47000000E+00 12 X 2 14 2.09000000E+00 X 2 10 3.31000000E+00 X 2 12 2.68000000E+00 X 2 8 3.96000000E+00 X 2 15 1.92000000E+00 X 1 7 1.33000000E+00 18 X 2 9 3.75000000E+00 X 2 11 3.15000000E+00 X 2 13 2.55000000E+00 X 1 4 1.95000000E+00 16 X 1 5 4.96000000E+00 6 X 1 6 1.06000000E+00 19 X 3 7 17 evdrv X 4 7 17 1.72000000E+00 17 X 3 7 18 evdrv X 4 7 18 2.03390000E+02 1 X 3 7 19 evdrv X 4 7 19 3.21000000E+00 12 X 3 7 20 evdrv X 4 7 20 3.54000000E+00 11 X 3 4 21 evdrv X 3 4 22 evdrv X 4 4 21 4.76000000E+00 7 X 4 4 22 2.64000000E+00 14 X 3 4 23 evdrv X 3 4 24 evdrv X 4 4 23 4.16000000E+00 9 X 3 4 25 evdrv X 3 6 26 evdrv X 4 4 24 6.24000000E+00 2 X 4 4 25 5.97000000E+00 3 X 3 5 27 evdrv X 4 6 26 5.37000000E+00 5 X 3 6 28 evdrv X 3 5 29 evdrv X 4 5 27 5.67000000E+00 4 X 3 5 30 evdrv X 3 6 31 evdrv X 3 5 32 evdrv X 4 6 28 4.47000000E+00 8 X 3 6 33 evdrv X 4 5 29 2.94000000E+00 13 X 4 5 30 2.36000000E+00 15 X 4 6 31 8.60000100E-01 20 X 4 5 32 3.85000000E+00 10 X 5 7 20 3.84000000E+00 X 4 6 33 3.84000000E+00 11 X 6 7 1.69000000E+00 X 5 4 23 4.44000000E+00 X 5 7 18 2.03720000E+02 X 5 4 22 2.91000000E+00 X 5 4 21 5.02000000E+00 X 5 5 32 4.15000000E+00 X 6 4 2.33000000E+00 X 6 5 5.34000000E+00 X 6 6 1.43000000E+00 X 5 4 24 6.52000000E+00 X 5 7 17 2.04000000E+00 X 5 4 25 6.28000000E+00 X 1 4 2.93000000E+00 14 X 5 7 19 3.55000000E+00 X 1 7 4.48000000E+00 9 X 5 6 26 5.68000000E+00 X 5 5 29 3.28000000E+00 X 5 6 28 4.81000000E+00 X 5 5 30 2.70000000E+00 X 5 5 27 6.01000000E+00 X 2 4 2.98000000E+00 X 1 5 2.39000000E+00 16 X 5 6 31 1.21000000E+00 X 2 7 4.53000000E+00 X 2 5 2.40000000E+00 X 1 2 1.57000000E+00 19 X 5 6 33 4.13000000E+00 X 1 6 2.52000000E+00 16 X 3 2 34 evdrv X 3 2 35 evdrv X 4 2 34 2.36000000E+00 17 X 3 2 36 evdrv X 4 2 35 6.27000000E+00 4 X 3 2 37 evdrv X 4 2 36 3.55000000E+00 13 X 3 2 38 evdrv X 4 2 37 3.25000000E+00 14 X 3 2 39 evdrv X 4 2 38 6.60000000E+00 3 X 4 2 39 2.04070000E+02 1 X 3 2 40 evdrv X 2 6 2.54000000E+00 X 3 2 41 evdrv X 4 2 41 5.09000000E+00 8 X 3 2 42 evdrv X 4 2 40 2.06000000E+00 18 X 4 2 42 2.98000000E+00 15 X 1 3 3.87000000E+00 12 X 3 2 43 evdrv X 4 2 43 1.49000000E+00 20 X 3 3 44 evdrv X 4 3 44 4.94000000E+00 9 X 3 3 45 evdrv X 3 3 46 evdrv X 4 3 45 4.38000000E+00 11 X 3 3 47 evdrv X 3 3 48 evdrv X 3 3 49 evdrv X 4 3 46 2.72000000E+00 16 X 3 3 50 evdrv X 4 3 47 5.85000000E+00 6 X 3 3 51 evdrv X 4 3 48 7.03000000E+00 2 X 4 3 49 5.55000000E+00 7 X 3 3 52 evdrv X 4 3 50 4.68000000E+00 10 X 3 3 53 evdrv X 4 3 51 6.15000000E+00 5 X 5 2 39 2.04850000E+02 X 4 3 52 2.04850000E+02 1 X 5 2 42 3.77000000E+00 X 5 2 41 5.86000000E+00 X 4 3 53 3.78000000E+00 15 X 5 2 40 2.87000000E+00 X 6 2 2.69000000E+00 X 5 2 37 4.20000000E+00 X 5 2 36 4.49000000E+00 X 5 2 35 7.24000000E+00 X 5 3 51 6.93000000E+00 X 5 2 38 7.58000000E+00 X 5 3 49 6.30000000E+00 X 5 2 34 3.33000000E+00 X 5 3 50 5.48000000E+00 X 5 2 43 2.53000000E+00 X 1 2 2.53000000E+00 20 X 6 3 4.95000000E+00 X 5 3 45 5.35000000E+00 X 5 3 46 3.70000000E+00 X 5 3 44 5.93000000E+00 X 5 3 47 6.84000000E+00 X 5 3 48 8.04000000E+00 X 2 2 2.64000000E+00 X 5 3 52 2.05660000E+02 X 5 3 53 4.58000000E+00 X 1 3 3.43000000E+00 19 X 2 3 3.57000000E+00 X 1 1 4.42000000E+00 16 X 3 1 54 evdrv X 3 1 55 evdrv X 3 1 56 evdrv X 4 1 54 6.68000000E+00 13 X 3 1 57 evdrv X 4 1 55 5.21000000E+00 18 X 3 1 58 evdrv X 4 1 56 9.77000100E+00 3 X 4 1 57 4.55000000E+00 20 X 4 1 58 7.65000000E+00 10 X 3 1 59 evdrv X 4 1 59 8.84000100E+00 6 X 3 1 60 evdrv X 3 1 61 evdrv X 4 1 60 7.39000000E+00 11 X 3 1 62 evdrv X 4 1 61 9.44000000E+00 4 X 3 1 63 evdrv X 4 1 62 1.00200000E+01 2 X 4 1 63 8.22000100E+00 8 X 5 1 59 1.02000000E+01 X 5 1 60 8.74000000E+00 X 5 1 61 1.07900000E+01 X 5 1 62 1.16300000E+01 X 5 1 63 9.87000000E+00 X 6 1 7.37000000E+00 X 5 1 57 6.25000000E+00 X 5 1 58 9.35000100E+00 X 5 1 55 6.91000000E+00 X 5 1 54 8.37000000E+00 X 5 1 56 1.14500000E+01 X 1 1 1.11200000E+01 4 X 2 1 1.18500000E+01 END_OF_FILE if test 8160 -ne `wc -c <'TRACE/trace.b21eig'`; then echo shar: \"'TRACE/trace.b21eig'\" unpacked with wrong size! fi # end of 'TRACE/trace.b21eig' fi if test -f 'TRACE/trace.dandc' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/trace.dandc'\" else echo shar: Extracting \"'TRACE/trace.dandc'\" \(8160 characters\) sed "s/^X//" >'TRACE/trace.dandc' <<'END_OF_FILE' X 8 X 0 1 2 0 X sesupd X 0 2 2 1 1 X sesupd X 0 3 2 1 1 X sesupd X 0 4 2 1 2 X sesupd X 0 5 2 1 2 X sesupd X 0 6 2 1 3 X sesupd X 0 7 2 1 3 X sesupd X 0 8 0 1 4 X tql2 X 0 9 0 1 4 X tql2 X 0 10 0 1 5 X tql2 X 0 11 0 1 5 X tql2 X 0 12 0 1 6 X tql2 X 0 13 0 1 6 X tql2 X 0 14 0 1 7 X tql2 X 0 15 0 1 7 X tql2 X 1 9 2.66212010E+00 2 X 1 11 2.66212010E+00 4 X 1 14 2.66212010E+00 7 X 1 15 2.66212010E+00 8 X 1 10 2.66212010E+00 3 X 1 13 2.66212010E+00 6 X 1 8 2.66212010E+00 1 X 1 12 2.66212010E+00 5 X 2 14 2.67880011E+00 X 2 10 2.67880011E+00 X 2 9 2.67880011E+00 X 2 8 2.68306994E+00 X 2 15 2.68306994E+00 X 2 12 2.68306994E+00 X 1 4 2.68306994E+00 3 X 2 11 2.68306994E+00 X 1 7 2.68306994E+00 1 X 2 13 2.68306994E+00 X 1 5 2.68306994E+00 7 X 1 6 2.68306994E+00 2 X 3 5 17 evdrv X 3 4 18 evdrv X 3 7 19 evdrv X 3 6 20 evdrv X 4 5 17 2.68904996E+00 6 X 3 5 21 evdrv X 3 4 22 evdrv X 3 7 23 evdrv X 4 4 18 2.69208002E+00 4 X 4 7 19 2.69208002E+00 8 X 3 5 24 evdrv X 3 6 25 evdrv X 3 4 26 evdrv X 4 6 20 2.69208002E+00 5 X 3 7 27 evdrv X 3 5 28 evdrv X 3 6 29 evdrv X 3 4 30 evdrv X 3 7 31 evdrv X 3 6 32 evdrv X 3 4 33 evdrv X 6 5 2.70321989E+00 X 6 6 2.70321989E+00 X 5 4 18 2.70321989E+00 X 4 4 22 2.70321989E+00 7 X 4 6 25 2.70612001E+00 2 X 4 7 27 2.70619988E+00 4 X 5 5 17 2.70636010E+00 X 6 7 2.70643997E+00 X 4 5 21 2.70652008E+00 6 X 4 5 24 2.70658994E+00 1 X 6 4 2.70725012E+00 X 5 6 20 2.70725012E+00 X 4 4 26 2.70725012E+00 3 X 5 7 19 2.70750999E+00 X 4 5 28 2.70750999E+00 5 X 4 7 23 2.70750999E+00 8 X 5 4 22 2.71099997E+00 X 4 4 30 2.71200991E+00 7 X 5 7 27 2.71393991E+00 X 5 6 25 2.71393991E+00 X 4 6 29 2.71393991E+00 4 X 4 4 33 2.71393991E+00 2 X 5 5 21 2.71393991E+00 X 5 4 26 2.71759009E+00 X 4 7 31 2.71759009E+00 6 X 4 6 32 2.71919990E+00 3 X 5 5 28 2.71919990E+00 X 5 5 24 2.71968007E+00 X 1 5 2.71968007E+00 1 X 5 7 23 2.71968007E+00 X 2 5 2.72290993E+00 X 5 4 30 2.72290993E+00 X 5 4 33 2.72659993E+00 X 1 4 2.72659993E+00 1 X 5 6 29 2.72659993E+00 X 5 6 32 2.72659993E+00 X 2 4 2.73140001E+00 X 1 6 2.73140001E+00 8 X 5 7 31 2.73140001E+00 X 1 2 2.73140001E+00 7 X 1 7 2.73140001E+00 1 X 2 6 2.73486996E+00 X 2 7 2.73486996E+00 X 1 3 2.73734999E+00 5 X 3 2 34 evdrv X 3 2 35 evdrv X 4 2 34 2.73734999E+00 1 X 4 2 35 2.73734999E+00 8 X 3 2 36 evdrv X 4 2 36 2.73734999E+00 2 X 3 2 37 evdrv X 3 2 38 evdrv X 4 2 37 2.73734999E+00 3 X 3 2 39 evdrv X 4 2 38 2.73734999E+00 4 X 3 2 40 evdrv X 4 2 39 2.73734999E+00 6 X 3 2 41 evdrv X 3 2 42 evdrv X 3 2 43 evdrv X 3 3 44 evdrv X 3 3 45 evdrv X 3 3 46 evdrv X 3 3 47 evdrv X 3 3 48 evdrv X 3 3 49 evdrv X 3 3 50 evdrv X 3 3 51 evdrv X 3 3 52 evdrv X 3 3 53 evdrv X 5 2 39 2.75049996E+00 X 4 3 45 2.75049996E+00 6 X 5 2 34 2.75049996E+00 X 6 2 2.75049996E+00 X 4 2 40 2.75049996E+00 1 X 5 2 35 2.75049996E+00 X 5 2 36 2.75049996E+00 X 4 3 46 2.75049996E+00 7 X 5 2 37 2.77981997E+00 X 5 2 38 2.75049996E+00 X 4 3 47 2.75049996E+00 8 X 4 2 43 2.78005004E+00 4 X 6 3 2.77981997E+00 X 4 2 41 2.78005004E+00 2 X 4 2 42 2.77981997E+00 3 X 4 3 44 2.78005004E+00 5 X 5 2 40 2.78005004E+00 X 4 3 48 2.78005004E+00 1 X 5 3 45 2.78005004E+00 X 4 3 53 2.78005004E+00 6 X 5 3 46 2.78005004E+00 X 4 3 49 2.78005004E+00 7 X 5 2 41 2.78005004E+00 X 5 3 47 2.78005004E+00 X 5 2 43 2.78005004E+00 X 4 3 50 2.78005004E+00 2 X 4 3 51 2.78005004E+00 8 X 4 3 52 2.78005004E+00 4 X 5 3 44 2.80822992E+00 X 5 2 42 2.80822992E+00 X 1 2 2.80822992E+00 3 X 2 2 2.80822992E+00 X 5 3 53 2.80822992E+00 X 5 3 49 2.80822992E+00 X 5 3 48 2.80822992E+00 X 5 3 50 2.80822992E+00 X 5 3 51 2.80822992E+00 X 5 3 52 2.80822992E+00 X 1 3 2.80822992E+00 3 X 2 3 2.80822992E+00 X 1 1 2.80822992E+00 2 X 3 1 54 evdrv X 4 1 54 2.80822992E+00 3 X 3 1 55 evdrv X 4 1 55 2.80822992E+00 1 X 3 1 56 evdrv X 3 1 57 evdrv X 4 1 56 2.89660001E+00 6 X 4 1 57 2.89660001E+00 5 X 3 1 58 evdrv X 4 1 58 2.89660001E+00 4 X 3 1 59 evdrv X 3 1 60 evdrv X 4 1 59 2.89660001E+00 7 X 4 1 60 2.89660001E+00 8 X 3 1 61 evdrv X 3 1 62 evdrv X 3 1 63 evdrv X 5 1 60 2.90708995E+00 X 5 1 59 2.90708995E+00 X 4 1 63 2.90708995E+00 8 X 4 1 62 2.90708995E+00 7 X 5 1 54 2.90708995E+00 X 5 1 55 2.90708995E+00 X 4 1 61 2.90708995E+00 3 X 6 1 2.90708995E+00 X 5 1 56 2.93770003E+00 X 5 1 58 2.90708995E+00 X 5 1 57 2.93770003E+00 X 5 1 62 2.93770003E+00 X 5 1 63 2.93770003E+00 X 5 1 61 2.93770003E+00 X 1 1 2.93770003E+00 4 X 2 1 2.93770003E+00 END_OF_FILE if test 8160 -ne `wc -c <'TRACE/trace.dandc'`; then echo shar: \"'TRACE/trace.dandc'\" unpacked with wrong size! fi # end of 'TRACE/trace.dandc' fi if test -f 'TRACE/trace.eth' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/trace.eth'\" else echo shar: Extracting \"'TRACE/trace.eth'\" \(5520 characters\) sed "s/^X//" >'TRACE/trace.eth' <<'END_OF_FILE' X 8 X 0 1 0 2 2 3 X circ X 0 2 1 19 4 5 6 7 8 9 10 11 12 13 X 14 15 16 17 18 19 20 21 22 X compgg X 0 3 1 19 4 5 6 7 8 9 10 11 12 13 X 14 15 16 17 18 19 20 21 22 X sort X 0 4 2 1 23 X oldev X 0 5 2 2 23 24 X oldev X 0 6 2 2 24 25 X oldev X 0 7 2 2 25 26 X oldev X 0 8 2 2 26 27 X oldev X 0 9 2 2 27 28 X oldev X 0 10 2 2 28 29 X oldev X 0 11 2 2 29 30 X oldev X 0 12 2 2 30 31 X oldev X 0 13 2 2 31 32 X oldev X 0 14 2 2 32 33 X oldev X 0 15 2 2 33 34 X oldev X 0 16 2 2 34 35 X oldev X 0 17 2 2 35 36 X oldev X 0 18 2 2 36 37 X oldev X 0 19 2 2 37 38 X oldev X 0 20 2 2 38 39 X oldev X 0 21 2 2 39 40 X oldev X 0 22 2 1 40 X oldev X 0 23 2 1 41 X newev X 0 24 2 1 41 X newev X 0 25 2 1 41 X newev X 0 26 2 1 41 X newev X 0 27 2 1 41 X newev X 0 28 2 1 41 X newev X 0 29 2 1 41 X newev X 0 30 2 1 41 X newev X 0 31 2 1 41 X newev X 0 32 2 1 41 X newev X 0 33 2 1 41 X newev X 0 34 2 1 41 X newev X 0 35 2 1 41 X newev X 0 36 2 1 41 X newev X 0 37 2 1 41 X newev X 0 38 2 1 41 X newev X 0 39 2 1 41 X newev X 0 40 2 1 41 X newev X 0 41 18 0 X final X 1 1 4.83600013E-02 2 X 2 1 6.56199977E-02 X 1 2 6.56199977E-02 3 X 1 3 6.56199977E-02 4 X 2 2 7.62199983E-02 X 2 3 9.66999978E-02 X 1 4 1.55880004E-01 1 X 1 5 1.55880004E-01 3 X 1 6 1.55880004E-01 2 X 1 7 1.55880004E-01 6 X 1 8 1.55880004E-01 5 X 1 9 1.55880004E-01 8 X 1 10 1.55880004E-01 7 X 1 11 1.55880004E-01 4 X 2 4 1.57049999E-01 X 1 16 1.57120004E-01 1 X 2 5 1.57199994E-01 X 2 10 1.57199994E-01 X 2 9 1.62190005E-01 X 2 7 1.57199994E-01 X 1 18 1.57199994E-01 3 X 2 11 1.62190005E-01 X 1 14 1.62190005E-01 7 X 2 6 1.62190005E-01 X 1 13 1.57199994E-01 6 X 2 8 1.62190005E-01 X 2 16 1.62190005E-01 X 1 15 1.62190005E-01 8 X 1 19 1.62190005E-01 4 X 1 17 1.62499994E-01 1 X 2 18 1.62499994E-01 X 1 12 1.62499994E-01 5 X 2 13 1.62499994E-01 X 1 25 1.62499994E-01 2 X 2 14 1.62499994E-01 X 1 26 1.62499994E-01 3 X 1 22 1.62499994E-01 7 X 2 15 1.62499994E-01 X 2 19 1.62499994E-01 X 2 22 1.67710006E-01 X 1 23 1.67710006E-01 8 X 1 27 1.62499994E-01 4 X 1 21 1.67710006E-01 6 X 2 17 1.62499994E-01 X 2 12 1.67710006E-01 X 1 24 1.67710006E-01 1 X 1 32 1.67710006E-01 7 X 2 23 1.68029994E-01 X 1 20 1.68029994E-01 5 X 1 31 1.68029994E-01 8 X 2 21 1.68029994E-01 X 2 31 1.68029994E-01 X 1 29 1.68029994E-01 6 X 1 40 1.68029994E-01 8 X 2 40 1.68029994E-01 X 2 20 1.73130006E-01 X 1 33 1.73130006E-01 8 X 1 28 1.73449993E-01 5 X 2 28 1.74300000E-01 X 1 36 1.74549997E-01 5 X 2 27 1.74549997E-01 X 1 35 1.74549997E-01 4 X 2 35 1.74549997E-01 X 1 37 1.74549997E-01 4 X 2 32 1.74549997E-01 X 1 30 1.74549997E-01 7 X 2 24 1.74549997E-01 X 1 34 1.74549997E-01 1 X 2 29 3.68050009E-01 X 1 38 3.68050009E-01 6 X 2 25 3.68050009E-01 X 2 38 3.68050009E-01 X 1 39 3.68050009E-01 2 X 2 39 3.68050009E-01 X 2 36 4.93369997E-01 X 2 33 7.53820002E-01 X 2 34 7.53820002E-01 X 2 37 9.19709980E-01 X 2 26 9.19709980E-01 X 2 30 9.45649981E-01 X 1 41 9.45649981E-01 1 X 2 41 9.45649981E-01 X END_OF_FILE if test 5520 -ne `wc -c <'TRACE/trace.eth'`; then echo shar: \"'TRACE/trace.eth'\" unpacked with wrong size! fi # end of 'TRACE/trace.eth' fi if test -f 'TRACE/trace.simple' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/trace.simple'\" else echo shar: Extracting \"'TRACE/trace.simple'\" \(1365 characters\) sed "s/^X//" >'TRACE/trace.simple' <<'END_OF_FILE' X 8 X 0 1 0 1 11 X @ X 0 2 0 1 11 X @ X 0 3 0 1 11 X @ X 0 4 0 1 11 X @ X 0 5 0 1 11 X @ X 0 6 0 1 11 X @ X 0 7 0 1 11 X @ X 0 8 0 1 11 X @ X 0 9 0 1 11 X @ X 0 10 0 1 11 X @ X 0 11 10 0 X @ X 1 1 3.80599983E-02 2 X 1 2 3.80599983E-02 3 X 1 3 3.89599986E-02 4 X 1 5 3.89599986E-02 6 X 1 4 3.80599983E-02 5 X 1 8 3.80599983E-02 1 X 1 6 4.01999988E-02 7 X 1 7 3.93400006E-02 8 X 2 1 4.01999988E-02 X 2 2 3.93400006E-02 X 2 4 3.89599986E-02 X 2 8 4.01999988E-02 X 2 5 3.93400006E-02 X 1 9 3.93400006E-02 5 X 2 3 4.01999988E-02 X 1 10 3.93400006E-02 6 X 2 9 4.01999988E-02 X 2 10 4.01999988E-02 X 2 7 4.01999988E-02 X 2 6 4.01999988E-02 X 1 11 4.01999988E-02 6 X 2 11 4.01999988E-02 END_OF_FILE if test 1365 -ne `wc -c <'TRACE/trace.simple'`; then echo shar: \"'TRACE/trace.simple'\" unpacked with wrong size! fi # end of 'TRACE/trace.simple' fi if test -f 'TRACE/trace.tsnew' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/trace.tsnew'\" else echo shar: Extracting \"'TRACE/trace.tsnew'\" \(4698 characters\) sed "s/^X//" >'TRACE/trace.tsnew' <<'END_OF_FILE' X8 X 0 1 0 7 2 3 4 5 6 7 8 X stuff1 X 0 2 1 1 9 X stuff2 X 0 3 1 1 16 X stuff2 X 0 4 1 1 22 X stuff2 X 0 5 1 1 27 X stuff2 X 0 6 1 1 31 X stuff2 X 0 7 1 1 34 X stuff2 X 0 8 1 1 36 X stuff2 X 0 9 1 6 10 11 12 13 14 15 X stuff1 X 0 10 1 1 16 X stuff2 X 0 11 1 1 22 X stuff2 X 0 12 1 1 27 X stuff2 X 0 13 1 1 31 X stuff2 X 0 14 1 1 34 X stuff2 X 0 15 1 1 36 X stuff2 X 0 16 2 5 17 18 19 20 21 X stuff1 X 0 17 1 1 22 X stuff2 X 0 18 1 1 27 X stuff2 X 0 19 1 1 31 X stuff2 X 0 20 1 1 34 X stuff2 X 0 21 1 1 36 X stuff2 X 0 22 3 4 23 24 25 26 X stuff1 X 0 23 1 1 27 X stuff2 X 0 24 1 1 31 X stuff2 X 0 25 1 1 34 X stuff2 X 0 26 1 1 36 X stuff2 X 0 27 4 3 28 29 30 X stuff1 X 0 28 1 1 31 X stuff2 X 0 29 1 1 34 X stuff2 X 0 30 1 1 36 X stuff2 X 0 31 5 2 32 33 X stuff1 X 0 32 1 1 34 X stuff2 X 0 33 1 1 36 X stuff2 X 0 34 6 1 35 X stuff1 X 0 35 1 1 36 X stuff2 X 0 36 7 0 X stuff1 X 1 1 4.92299981E-02 2 X 2 1 5.13899997E-02 X 1 2 5.30899987E-02 4 X 1 3 5.43799996E-02 7 X 1 4 5.45700006E-02 5 X 1 5 5.43799996E-02 3 X 1 6 5.35000004E-02 8 X 1 7 5.35000004E-02 1 X 1 8 5.43799996E-02 6 X 2 2 5.35000004E-02 X 2 7 5.35000004E-02 X 1 9 5.43799996E-02 2 X 2 6 5.43799996E-02 X 2 5 5.43799996E-02 X 2 9 5.43799996E-02 X 2 8 5.45700006E-02 X 2 3 5.45700006E-02 X 1 10 5.45700006E-02 4 X 1 11 5.45700006E-02 1 X 1 12 5.45700006E-02 3 X 2 10 5.45700006E-02 X 2 4 5.45700006E-02 X 2 12 5.45700006E-02 X 1 13 5.45700006E-02 2 X 1 14 5.45700006E-02 3 X 2 11 5.45700006E-02 X 2 13 5.47900014E-02 X 1 15 5.53199984E-02 8 X 2 14 5.53199984E-02 X 1 16 5.53199984E-02 1 X 2 16 5.53199984E-02 X 2 15 5.61500005E-02 X 1 17 5.63200004E-02 5 X 1 18 5.63200004E-02 3 X 1 19 5.63200004E-02 7 X 1 20 5.61500005E-02 4 X 1 21 5.63200004E-02 2 X 2 20 5.63200004E-02 X 2 19 5.63200004E-02 X 2 18 5.63200004E-02 X 2 21 5.63200004E-02 X 2 17 5.63200004E-02 X 1 22 5.63200004E-02 6 X 2 22 5.63200004E-02 X 1 23 6.16700016E-02 7 X 1 24 6.16700016E-02 2 X 1 25 6.16700016E-02 5 X 1 26 6.16700016E-02 8 X 2 23 6.16700016E-02 X 2 24 6.25000000E-02 X 2 26 6.25000000E-02 X 1 27 6.25000000E-02 4 X 2 25 6.25000000E-02 X 2 27 6.25000000E-02 X 1 28 6.26799986E-02 6 X 1 29 6.26799986E-02 7 X 1 30 6.26799986E-02 1 X 2 30 6.26799986E-02 X 2 28 6.26799986E-02 X 2 29 6.26799986E-02 X 1 31 6.59800023E-02 8 X 2 31 6.69900030E-02 X 1 32 6.72399998E-02 6 X 1 33 6.72399998E-02 3 X 2 33 6.72399998E-02 X 2 32 6.72399998E-02 X 1 34 6.99400008E-02 8 X 2 34 7.07700029E-02 X 1 35 7.09600002E-02 6 X 2 35 7.09600002E-02 X 1 36 7.29900002E-02 8 X 2 36 7.38100037E-02 END_OF_FILE if test 4698 -ne `wc -c <'TRACE/trace.tsnew'`; then echo shar: \"'TRACE/trace.tsnew'\" unpacked with wrong size! fi # end of 'TRACE/trace.tsnew' fi if test -f 'TRACE/trace.tsspawn' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/trace.tsspawn'\" else echo shar: Extracting \"'TRACE/trace.tsspawn'\" \(15953 characters\) sed "s/^X//" >'TRACE/trace.tsspawn' <<'END_OF_FILE' X 8 X 0 1 0 1 2 X stuff1 X 0 2 1 1 3 X stuff1 X 0 3 1 1 4 X stuff1 X 0 4 1 1 5 X stuff1 X 0 5 1 1 6 X stuff1 X 0 6 1 1 7 X stuff1 X 0 7 1 1 8 X stuff1 X 0 8 1 0 X stuff1 X 1 1 3.35600004E-02 2 X 3 1 10 stuff2 X 4 1 10 3.35600004E-02 4 X 3 1 11 stuff2 X 4 1 11 3.95900011E-02 1 X 3 1 12 stuff2 X 3 1 13 stuff2 X 4 1 12 3.95900011E-02 8 X 4 1 13 4.04700004E-02 3 X 3 1 14 stuff2 X 4 1 14 4.03899997E-02 5 X 3 1 15 stuff2 X 4 1 15 3.95900011E-02 7 X 3 1 16 stuff2 X 4 1 16 4.05500010E-02 6 X 5 1 15 4.08000015E-02 X 5 1 13 4.08000015E-02 X 5 1 14 4.08000015E-02 X 5 1 11 4.08000015E-02 X 5 1 10 4.08000015E-02 X 5 1 12 4.08000015E-02 X 6 1 4.08000015E-02 X 5 1 16 4.08000015E-02 X 1 1 4.08000015E-02 2 X 3 1 17 stuff3 X 4 1 17 4.08000015E-02 5 X 3 1 18 stuff3 X 4 1 18 4.08000015E-02 7 X 3 1 19 stuff3 X 4 1 19 4.08000015E-02 3 X 3 1 20 stuff3 X 4 1 20 4.83300015E-02 4 X 3 1 21 stuff3 X 5 1 17 4.91599999E-02 X 4 1 21 4.83300015E-02 8 X 3 1 22 stuff3 X 3 1 23 stuff3 X 5 1 18 4.83300015E-02 X 4 1 22 4.91599999E-02 6 X 4 1 23 4.91599999E-02 1 X 6 1 4.91599999E-02 X 5 1 19 4.91599999E-02 X 5 1 21 4.91599999E-02 X 5 1 20 4.91599999E-02 X 5 1 23 4.91599999E-02 X 5 1 22 4.91599999E-02 X 1 1 4.91599999E-02 3 X 2 1 4.91599999E-02 X 1 2 5.62199987E-02 8 X 3 2 24 stuff2 X 4 2 24 5.62199987E-02 1 X 3 2 25 stuff2 X 4 2 25 5.62199987E-02 2 X 3 2 26 stuff2 X 3 2 27 stuff2 X 4 2 26 5.62199987E-02 4 X 4 2 27 6.00599982E-02 7 X 3 2 28 stuff2 X 5 2 24 5.62199987E-02 X 4 2 28 6.00599982E-02 6 X 3 2 29 stuff2 X 3 2 30 stuff2 X 5 2 25 6.00599982E-02 X 4 2 29 6.00599982E-02 5 X 6 2 6.00599982E-02 X 4 2 30 6.00599982E-02 3 X 5 2 26 6.00599982E-02 X 5 2 27 6.00599982E-02 X 5 2 30 6.00599982E-02 X 5 2 29 6.00599982E-02 X 5 2 28 6.00599982E-02 X 1 2 6.00599982E-02 1 X 3 2 31 stuff3 X 4 2 31 6.00599982E-02 2 X 3 2 32 stuff3 X 4 2 32 6.00599982E-02 4 X 3 2 33 stuff3 X 4 2 33 6.00599982E-02 6 X 3 2 34 stuff3 X 4 2 34 6.82799965E-02 5 X 3 2 35 stuff3 X 5 2 31 6.82799965E-02 X 3 2 36 stuff3 X 4 2 35 6.00599982E-02 3 X 4 2 36 6.82799965E-02 7 X 3 2 37 stuff3 X 5 2 32 6.82799965E-02 X 4 2 37 6.82799965E-02 8 X 6 2 6.82799965E-02 X 5 2 33 6.82799965E-02 X 5 2 35 6.82799965E-02 X 5 2 34 6.82799965E-02 X 5 2 36 6.82799965E-02 X 5 2 37 6.91199973E-02 X 1 2 6.91199973E-02 6 X 2 2 6.91199973E-02 X 1 3 7.16499984E-02 8 X 3 3 38 stuff2 X 3 3 39 stuff2 X 4 3 38 7.16499984E-02 2 X 4 3 39 7.16499984E-02 3 X 3 3 40 stuff2 X 4 3 40 7.16499984E-02 1 X 3 3 41 stuff2 X 3 3 42 stuff2 X 4 3 41 7.16499984E-02 5 X 5 3 38 7.54299983E-02 X 3 3 43 stuff2 X 4 3 42 7.54299983E-02 7 X 4 3 43 7.54299983E-02 6 X 3 3 44 stuff2 X 5 3 39 7.54299983E-02 X 4 3 44 7.54299983E-02 4 X 6 3 7.54299983E-02 X 5 3 40 7.54299983E-02 X 5 3 41 7.54299983E-02 X 5 3 44 7.54299983E-02 X 5 3 42 7.54299983E-02 X 5 3 43 7.54299983E-02 X 1 3 7.54299983E-02 2 X 3 3 45 stuff3 X 4 3 45 7.54299983E-02 3 X 3 3 46 stuff3 X 3 3 47 stuff3 X 4 3 46 8.41099992E-02 1 X 4 3 47 8.45799968E-02 8 X 3 3 48 stuff3 X 5 3 45 8.45799968E-02 X 4 3 48 8.45799968E-02 6 X 3 3 49 stuff3 X 3 3 50 stuff3 X 4 3 49 8.54199976E-02 4 X 5 3 46 8.54199976E-02 X 3 3 51 stuff3 X 4 3 50 8.54199976E-02 5 X 4 3 51 8.54199976E-02 7 X 6 3 8.54199976E-02 X 5 3 47 8.54199976E-02 X 5 3 48 8.54199976E-02 X 5 3 50 8.54199976E-02 X 5 3 51 8.54199976E-02 X 5 3 49 8.54199976E-02 X 1 3 8.54199976E-02 7 X 2 3 8.54199976E-02 X 1 4 8.54199976E-02 3 X 3 4 52 stuff2 X 4 4 52 8.54199976E-02 1 X 3 4 53 stuff2 X 4 4 53 8.54199976E-02 4 X 3 4 54 stuff2 X 3 4 55 stuff2 X 4 4 54 9.65500027E-02 8 X 4 4 55 9.65500027E-02 2 X 3 4 56 stuff2 X 5 4 52 9.65500027E-02 X 4 4 56 9.73799974E-02 5 X 3 4 57 stuff2 X 3 4 58 stuff2 X 5 4 53 9.73799974E-02 X 4 4 57 9.73799974E-02 6 X 4 4 58 9.73799974E-02 7 X 6 4 9.73799974E-02 X 5 4 54 9.73799974E-02 X 5 4 55 9.73799974E-02 X 5 4 56 9.73799974E-02 X 5 4 57 9.73799974E-02 X 5 4 58 9.73799974E-02 X 1 4 9.73799974E-02 4 X 3 4 59 stuff3 X 3 4 60 stuff3 X 4 4 59 9.73799974E-02 6 X 4 4 60 9.73799974E-02 2 X 3 4 61 stuff3 X 4 4 61 9.73799974E-02 1 X 3 4 62 stuff3 X 3 4 63 stuff3 X 4 4 62 9.73799974E-02 3 X 5 4 59 1.02640003E-01 X 4 4 63 1.02640003E-01 7 X 3 4 64 stuff3 X 4 4 64 1.02640003E-01 5 X 3 4 65 stuff3 X 5 4 60 1.03469998E-01 X 4 4 65 1.02640003E-01 8 X 6 4 1.03469998E-01 X 5 4 61 1.02640003E-01 X 5 4 62 1.03469998E-01 X 5 4 63 1.03469998E-01 X 5 4 65 1.03469998E-01 X 5 4 64 1.03469998E-01 X 1 4 1.03469998E-01 3 X 2 4 1.03469998E-01 X 1 5 1.03469998E-01 2 X 3 5 66 stuff2 X 4 5 66 1.03469998E-01 1 X 3 5 67 stuff2 X 4 5 67 1.03469998E-01 7 X 3 5 68 stuff2 X 4 5 68 1.03469998E-01 4 X 3 5 69 stuff2 X 3 5 70 stuff2 X 4 5 69 1.03469998E-01 6 X 5 5 66 1.12910002E-01 X 3 5 71 stuff2 X 4 5 70 1.12070002E-01 3 X 4 5 71 1.12070002E-01 5 X 3 5 72 stuff2 X 5 5 67 1.12070002E-01 X 4 5 72 1.12070002E-01 8 X 6 5 1.12070002E-01 X 5 5 68 1.12070002E-01 X 5 5 69 1.12070002E-01 X 5 5 71 1.12070002E-01 X 5 5 70 1.12070002E-01 X 5 5 72 1.12910002E-01 X 1 5 1.12910002E-01 2 X 3 5 73 stuff3 X 4 5 73 1.12910002E-01 7 X 3 5 74 stuff3 X 3 5 75 stuff3 X 4 5 74 1.12910002E-01 5 X 4 5 75 1.12910002E-01 1 X 3 5 76 stuff3 X 3 5 77 stuff3 X 4 5 76 1.17040001E-01 3 X 5 5 73 1.17870003E-01 X 3 5 78 stuff3 X 4 5 77 1.17040001E-01 4 X 4 5 78 1.17040001E-01 8 X 3 5 79 stuff3 X 5 5 74 1.17040001E-01 X 4 5 79 1.17040001E-01 6 X 6 5 1.17870003E-01 X 5 5 75 1.17870003E-01 X 5 5 76 1.17040001E-01 X 5 5 77 1.17040001E-01 X 5 5 78 1.17870003E-01 X 5 5 79 1.17870003E-01 X 1 5 1.17870003E-01 2 X 2 5 1.17870003E-01 X 1 6 1.17870003E-01 3 X 3 6 80 stuff2 X 4 6 80 1.17870003E-01 6 X 3 6 81 stuff2 X 4 6 81 1.17870003E-01 5 X 3 6 82 stuff2 X 3 6 83 stuff2 X 4 6 82 1.23259999E-01 8 X 4 6 83 1.23259999E-01 4 X 3 6 84 stuff2 X 5 6 80 1.23259999E-01 X 3 6 85 stuff2 X 4 6 84 1.24090001E-01 7 X 3 6 86 stuff2 X 5 6 81 1.24090001E-01 X 4 6 85 1.24090001E-01 2 X 4 6 86 1.24090001E-01 1 X 6 6 1.24090001E-01 X 5 6 82 1.24090001E-01 X 5 6 83 1.26900002E-01 X 5 6 84 1.26900002E-01 X 5 6 86 1.26900002E-01 X 5 6 85 1.26900002E-01 X 1 6 1.26900002E-01 7 X 3 6 87 stuff3 X 4 6 87 1.26900002E-01 6 X 3 6 88 stuff3 X 4 6 88 1.32080004E-01 8 X 3 6 89 stuff3 X 3 6 90 stuff3 X 4 6 89 1.32080004E-01 4 X 4 6 90 1.32929996E-01 5 X 3 6 91 stuff3 X 5 6 87 1.32929996E-01 X 3 6 92 stuff3 X 4 6 91 1.32080004E-01 3 X 3 6 93 stuff3 X 4 6 92 1.32929996E-01 1 X 5 6 88 1.32929996E-01 X 4 6 93 1.32929996E-01 2 X 6 6 1.32929996E-01 X 5 6 89 1.32929996E-01 X 5 6 91 1.32929996E-01 X 5 6 92 1.32929996E-01 X 5 6 93 1.32929996E-01 X 5 6 90 1.32929996E-01 X 1 6 1.32929996E-01 1 X 2 6 1.32929996E-01 X 1 7 1.32929996E-01 3 X 3 7 94 stuff2 X 4 7 94 1.32929996E-01 5 X 3 7 95 stuff2 X 3 7 96 stuff2 X 4 7 95 1.32929996E-01 7 X 4 7 96 1.44769996E-01 6 X 3 7 97 stuff2 X 3 7 98 stuff2 X 4 7 97 1.44769996E-01 8 X 5 7 94 1.45590007E-01 X 3 7 99 stuff2 X 4 7 98 1.44769996E-01 1 X 4 7 99 1.44769996E-01 2 X 3 7 100 stuff2 X 5 7 95 1.45590007E-01 X 6 7 1.45590007E-01 X 4 7 100 1.45590007E-01 4 X 5 7 96 1.45590007E-01 X 5 7 97 1.45590007E-01 X 5 7 98 1.45590007E-01 X 5 7 99 1.45590007E-01 X 5 7 100 1.45590007E-01 X 1 7 1.45590007E-01 5 X 3 7 101 stuff3 X 4 7 101 1.45590007E-01 2 X 3 7 102 stuff3 X 4 7 102 1.45590007E-01 3 X 3 7 103 stuff3 X 3 7 104 stuff3 X 4 7 103 1.52769998E-01 6 X 4 7 104 1.52769998E-01 8 X 3 7 105 stuff3 X 5 7 101 1.53600007E-01 X 3 7 106 stuff3 X 4 7 105 1.53600007E-01 1 X 3 7 107 stuff3 X 4 7 106 1.52769998E-01 7 X 5 7 102 1.53600007E-01 X 6 7 1.53600007E-01 X 4 7 107 1.53600007E-01 4 X 5 7 103 1.52769998E-01 X 5 7 104 1.53600007E-01 X 5 7 106 1.53600007E-01 X 5 7 107 1.53600007E-01 X 5 7 105 1.53600007E-01 X 1 7 1.53600007E-01 4 X 2 7 1.53600007E-01 X 1 8 1.53600007E-01 6 X 3 8 108 stuff2 X 3 8 109 stuff2 X 4 8 108 1.53600007E-01 2 X 4 8 109 1.53600007E-01 4 X 3 8 110 stuff2 X 3 8 111 stuff2 X 4 8 110 1.59970000E-01 3 X 3 8 112 stuff2 X 4 8 111 1.59970000E-01 8 X 5 8 108 1.59970000E-01 X 4 8 112 1.59970000E-01 7 X 3 8 113 stuff2 X 3 8 114 stuff2 X 4 8 113 1.60799995E-01 5 X 5 8 109 1.60799995E-01 X 6 8 1.60799995E-01 X 4 8 114 1.60799995E-01 1 X 5 8 110 1.59970000E-01 X 5 8 111 1.60799995E-01 X 5 8 112 1.60799995E-01 X 5 8 113 1.60799995E-01 X 5 8 114 1.60799995E-01 X 1 8 1.65560007E-01 3 X 3 8 115 stuff3 X 4 8 115 1.65560007E-01 2 X 3 8 116 stuff3 X 3 8 117 stuff3 X 4 8 116 1.68170005E-01 8 X 4 8 117 1.69019997E-01 7 X 3 8 118 stuff3 X 4 8 118 1.68170005E-01 4 X 3 8 119 stuff3 X 5 8 115 1.68170005E-01 X 3 8 120 stuff3 X 4 8 119 1.69019997E-01 5 X 4 8 120 1.69019997E-01 1 X 3 8 121 stuff3 X 5 8 116 1.69019997E-01 X 4 8 121 1.69019997E-01 6 X 6 8 1.69019997E-01 X 5 8 118 1.69019997E-01 X 5 8 121 1.69019997E-01 X 5 8 117 1.69019997E-01 X 5 8 120 1.69019997E-01 X 5 8 119 1.69019997E-01 X 1 8 1.69019997E-01 6 X 2 8 1.69019997E-01 END_OF_FILE if test 15953 -ne `wc -c <'TRACE/trace.tsspawn'`; then echo shar: \"'TRACE/trace.tsspawn'\" unpacked with wrong size! fi # end of 'TRACE/trace.tsspawn' fi if test -f 'TRACE/SUNVIEW/color_stuff.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/SUNVIEW/color_stuff.c'\" else echo shar: Extracting \"'TRACE/SUNVIEW/color_stuff.c'\" \(1967 characters\) sed "s/^X//" >'TRACE/SUNVIEW/color_stuff.c' <<'END_OF_FILE' X/* This program prepares the colors in a pixwin. */ X/* Richard Keene, SUN Microsystems, Rochester N.Y. office */ X/* Modified by Orlie Brewer, ANL, Argonne, IL */ X X#include "sched.trace.h" X static int color_array_set = 0; /* flag to show the array is initialized */ unsigned char red[NUM_COLORS],green[NUM_COLORS],blue[NUM_COLORS]; X set_colormap() X{ X X if(color_array_set) X return; X X red[8] = 255; X green[8] = 255; X blue[8] = 255; X my_color_map[WHITE] = 8; X X red[0] = 170; X green[0] = 220; X blue[0] = 255; X my_color_map[BACKGROUND] = 0; X X /* red */ X red[RED] = 255; X green[RED] = 150; X blue[RED] = 150; X my_color_map[RED] = RED; X X /* green */ X red[GREEN] = 0; X green[GREEN] = 255; X blue[GREEN] = 150; X my_color_map[GREEN] = GREEN; X X /* blue */ X red[BLUE] = 0; X green[BLUE] = 0; X blue[BLUE] = 255; X my_color_map[BLUE] = BLUE; X X /* yellow */ X red[YELLOW] = 255; X green[YELLOW] = 255; X blue[YELLOW] = 160; X my_color_map[YELLOW] = YELLOW; X X /* turquoise sic? */ X red[TURQUOISE] = 0; X green[TURQUOISE] = 255; X blue[TURQUOISE] = 255; X my_color_map[TURQUOISE] = TURQUOISE; X X /* magenta (purple) */ X red[MAGENTA] = 255; X green[MAGENTA] = 0; X blue[MAGENTA] = 255; X my_color_map[MAGENTA] = MAGENTA; X X /* black foreground */ X red[BLACK] = 0; X green[BLACK] = 0; X blue[BLACK] = 0; X my_color_map[BLACK] = BLACK; X X color_array_set = 1; X} X set_pw_map(pw, name) X Pixwin *pw; X char *name; X{ X X set_colormap(); X pw_setcmsname(pw,name); X pw_putcolormap(pw,0,NUM_COLORS,red,green,blue); X} X X /* This routine returns a colored button image */ struct pixrect *color_button(pr,color) X struct pixrect *pr; X int color; X{ X struct pixrect *color_pr; X X if(pr == NULL) X return(NULL); X X /* make new pixrect */ X color_pr = mem_create(pr->pr_size.x, pr->pr_size.y, 8); X X /* copy pr to color_pr with color added */ X pr_rop(color_pr, 0, 0, pr->pr_size.x, pr->pr_size.y, X PIX_SRC | PIX_COLOR(color), pr, 0, 0); X X return(color_pr); X} END_OF_FILE if test 1967 -ne `wc -c <'TRACE/SUNVIEW/color_stuff.c'`; then echo shar: \"'TRACE/SUNVIEW/color_stuff.c'\" unpacked with wrong size! fi # end of 'TRACE/SUNVIEW/color_stuff.c' fi if test -f 'TRACE/SUNVIEW/main.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/SUNVIEW/main.c'\" else echo shar: Extracting \"'TRACE/SUNVIEW/main.c'\" \(1314 characters\) sed "s/^X//" >'TRACE/SUNVIEW/main.c' <<'END_OF_FILE' X#include "sched.trace.h" X main(argc,argv) int argc; char **argv; X{ X if (argc == 1) X { X window_init(); X program_init(); X sunloop(); X } X else X { X printf("No graphics.\n"); X exit(1); X } X} X program_init() X{ X XOFFSET = 20; X YOFFSET = 50; X XSIZE = 40; X YSIZE = 20; X DYNZONE = 60; X forward = TRUE; X event_list = (struct event *) malloc(sizeof(struct event)); X trailer_event = (struct event *) malloc(sizeof(struct event)); X event_list->previous_event = NULL_PTR; X event_list->next_event = trailer_event; X trailer_event->previous_event = event_list; X trailer_event->next_event = NULL_PTR; X trailer_event->time = 1.0e+60; /* Used for sorting events by time. */ X file_table[0] = NULL; X directory_table[0] = NULL; X load_tables(); X} X sunloop() X{ X pw_text(pw, 15, 150, PIX_SRC, 0, X "Hello, this is a graphics tool to trace the execution of programs that used SCHEDULE."); X pw_text(pw, 15, 170, PIX_SRC, 0, X "Select your file, click LOAD, and then click GO or STEP."); X pw_text(pw, 15, 190, PIX_SRC, 0, X "If you choose GO, you may stop execution at any time by clicking STOP or STEP."); X pw_text(pw, 15, 210, PIX_SRC, 0, X "You may then step through the execution by using STEP or continue execution by clicking GO."); X X window_main_loop(frame); X} X END_OF_FILE if test 1314 -ne `wc -c <'TRACE/SUNVIEW/main.c'`; then echo shar: \"'TRACE/SUNVIEW/main.c'\" unpacked with wrong size! fi # end of 'TRACE/SUNVIEW/main.c' fi if test -f 'TRACE/SUNVIEW/makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/SUNVIEW/makefile'\" else echo shar: Extracting \"'TRACE/SUNVIEW/makefile'\" \(2379 characters\) sed "s/^X//" >'TRACE/SUNVIEW/makefile' <<'END_OF_FILE' X# CFLAGS = -g -DSUNVIEW -I./../src LFLAGS = X# OBJS = main.o \ X active.o \ X assign_xy.o \ X atlevel.o \ X build_levels.o \ X c_time.o \ X color_stuff.o \ X drawing.o \ X draw_level.o \ X draw_path.o \ X draw_subtree.o \ X dumps.o \ X events.o \ X find_parents.o \ X get_path_len.o \ X legend.o \ X load.o \ X new_tree.o \ X open_tracefi.o \ X pathes.o \ X procs.o \ X rebuild.o \ X searches.o \ X wd_drawing.o \ X window_init.o LIBS = -lsuntool -lsunwindow -lpixrect -lm X# sched.trace: $(OBJS) X cc $(CFLAGS) $(LFLAGS) -o sched.trace $(OBJS) $(LIBS) X# clean: X rm -f *.o *~ X# main.o: main.c X cc $(CFLAGS) -c main.c active.o: ./../src/active.c X cc $(CFLAGS) -c ./../src/active.c assign_xy.o: ./../src/assign_xy.c X cc $(CFLAGS) -c ./../src/assign_xy.c atlevel.o: ./../src/atlevel.c X cc $(CFLAGS) -c ./../src/atlevel.c build_levels.o: ./../src/build_levels.c X cc $(CFLAGS) -c ./../src/build_levels.c c_time.o: ./../src/c_time.c X cc $(CFLAGS) -c ./../src/c_time.c color_stuff.o: color_stuff.c X cc $(CFLAGS) -c color_stuff.c drawing.o: ./../src/drawing.c X cc $(CFLAGS) -c ./../src/drawing.c draw_level.o: ./../src/draw_level.c X cc $(CFLAGS) -c ./../src/draw_level.c draw_subtree.o: ./../src/draw_subtree.c X cc $(CFLAGS) -c ./../src/draw_subtree.c draw_path.o: ./../src/draw_path.c X cc $(CFLAGS) -c ./../src/draw_path.c dumps.o: ./../src/dumps.c X cc $(CFLAGS) -c ./../src/dumps.c events.o: ./../src/events.c X cc $(CFLAGS) -c ./../src/events.c find_parents.o: ./../src/find_parents.c X cc $(CFLAGS) -c ./../src/find_parents.c get_path_len.o: ./../src/get_path_len.c X cc $(CFLAGS) -c ./../src/get_path_len.c legend.o: ./../src/legend.c X cc $(CFLAGS) -c ./../src/legend.c load.o: ./../src/load.c X cc $(CFLAGS) -c ./../src/load.c new_tree.o: ./../src/new_tree.c X cc $(CFLAGS) -c ./../src/new_tree.c open_tracefi.o: ./../src/open_tracefi.c X cc $(CFLAGS) -c ./../src/open_tracefi.c pathes.o: ./../src/pathes.c X cc $(CFLAGS) -c ./../src/pathes.c procs.o: procs.c X cc $(CFLAGS) -c procs.c rebuild.o: ./../src/rebuild.c X cc $(CFLAGS) -c ./../src/rebuild.c searches.o: ./../src/searches.c X cc $(CFLAGS) -c ./../src/searches.c wd_drawing.o: wd_drawing.c X cc $(CFLAGS) -c wd_drawing.c window_init.o: window_init.c X cc $(CFLAGS) -c window_init.c X# X#.c.o: X# cc $(CFLAGS) -c $*.c X# END_OF_FILE if test 2379 -ne `wc -c <'TRACE/SUNVIEW/makefile'`; then echo shar: \"'TRACE/SUNVIEW/makefile'\" unpacked with wrong size! fi # end of 'TRACE/SUNVIEW/makefile' fi if test -f 'TRACE/SUNVIEW/procs.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/SUNVIEW/procs.c'\" else echo shar: Extracting \"'TRACE/SUNVIEW/procs.c'\" \(7679 characters\) sed "s/^X//" >'TRACE/SUNVIEW/procs.c' <<'END_OF_FILE' X#include "sched.trace.h" X extern Notify_error notify_dispatch(); extern int errno; X void load_notify_proc(item,event) Panel_item item; XEvent *event; X{ X open_tracefile(file_table[ft_index]); X} X void go_notify_proc(item,event) Panel_item item; XEvent *event; X{ X char msg[50]; X if (file_loaded) X if (nodraw) X { X sprintf(msg, "Skipping forward to %d.",start_draw_mark); X display_message(msg); X } X else X { X display_message("Processing events."); X go = TRUE; X while (go) X { X proc_event(); X if (button_hit()) go = FALSE; X } X } X else X display_message("You have to select a file first."); X} X button_hit() X X{ X return ((int) window_get(panel, WIN_EVENT_STATE, MS_LEFT)); X} X void stop_notify_proc(item,event) Panel_item item; XEvent *event; X{ X go = FALSE; X} X void step_notify_proc(item,event) Panel_item item; XEvent *event; X{ X if (file_loaded) X { X go = FALSE; X display_message("Stepping through one event."); X proc_event(); X } X else X display_message("You have to select a file first."); X} X void quit_notify_proc(item,event) Panel_item item; XEvent *event; X{ X window_set(frame, FRAME_NO_CONFIRM, FALSE, 0); X done = window_destroy(frame); X if (!done) X { X window_return(NOTIFY_DONE); X } X else X { X window_set(histogram_frame, FRAME_NO_CONFIRM, TRUE, 0); X window_set(processor_frame, FRAME_NO_CONFIRM, TRUE, 0); X window_destroy(histogram_frame); X window_destroy(processor_frame); X } X} X void direction_notify_proc(item,event) Panel_item item; XEvent *event; X{ X if (forward) X { X forward = FALSE; X panel_set(direction_button, PANEL_LABEL_IMAGE, X panel_button_image(panel, "Backward", 0, NULL), X 0); X panel_set(directiontext, PANEL_LABEL_STRING, X "Direction : backward", X 0); X current_event = current_event->next_event; X } X else X { X forward = TRUE; X panel_set(direction_button, PANEL_LABEL_IMAGE, X panel_button_image(panel, "Forward ", 0, NULL), X 0); X panel_set(directiontext, PANEL_LABEL_STRING, X "Direction : forward", X 0); X current_event = current_event->previous_event; X } X} X void full_notify_proc(item,event) Panel_item item; XEvent *event; X{ X size_factor = 1 + size_factor; X if ( size_factor > 2 ) size_factor = 1; X} X void timing_notify_proc(item,event) Panel_item item; XEvent *event; X{ X time_flag = TRUE; X proc_event(); X} X void subtree_notify_proc(item,event) Panel_item item; XEvent *event; X{ X if (file_loaded) X { X if (CURRENT_NODE != -1) X { X ++DEPTH; X draw_subtree(); X } X } X else X display_message("You have to select a file first."); X} X void c_time_notify_proc(item,event) Panel_item item; XEvent *event; X{ X if (file_loaded) X c_time(event); X else X display_message("You have to select a file first."); X} X void name_notify_proc(item,event) Panel_item item; XEvent *event; X{ X if (file_loaded) X create_names_menu(event); X else X display_message("You have to select a file first."); X} X void contrast_notify_proc(item,event) Panel_item item; XEvent *event; X{ X if (fb_depth == 1) X { X if (screen_toggle) X { X screen_toggle = FALSE; X pw_blackonwhite (pw, 0, 1); X } X else X { X screen_toggle = TRUE; X pw_whiteonblack (pw, 0, 1); X } X if (file_loaded) redraw_all(); X } X} X void redraw_notify_proc(item,event) Panel_item item; XEvent *event; X{ X if (file_loaded) X redraw_all(); X else X display_message("You have to select a file first."); X} X void t_speed_notify_proc(item,value,event) Panel_item item; int value; XEvent *event; X{ X t_speed = value; X} X void e_speed_notify_proc(item,value,event) Panel_item item; int value; XEvent *event; X{ X e_speed = value; X} X void count_notify_proc(item,value,event) Panel_item item; int value; XEvent *event; X{ X/* X if (value < event_count) X { X display_message("can't go backwards yet"); X } X else X { X nodraw = 1; X start_draw_mark = value; X } X*/ X} X void file_notify_proc(item,value,event) Panel_item item; int value; XEvent *event; X{ X static char current_file[150]; X X if (ft_index != value) X { X ft_index = value; X strcpy(current_file, "Trace file: "); X strcpy(current_file + 12, file_table[ft_index]); X panel_set(file_choice,PANEL_LABEL_STRING, current_file, 0); X display_message("File selection changed but not yet loaded."); X } X} X void directory_notify_proc(item,value,event) Panel_item item; int value; XEvent *event; X{ X if (value < enter_new_directory) X { X chdir(directory_table[value]); X load_tables(); X } X/* X else X { X Frame popup_frame; X popup_frame = window_create(frame, FRAME, X WIN_ROWS, 1, X WIN_COLUMNS, 80, X 0); X window_fit(popup_frame); X popup_panel = window_create(popup_frame, PANEL, 0); X panel_text = panel_create_item(popup_panel, PANEL_TEXT, X PANEL_LABEL_STRING, "New directory: ", X 0); X panel_button = panel_create_item(popup_frame, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(popup_panel, "Ready", 0, NULL); X PANEL_NOTIFY_PROC, ready_notify_proc, X 0); X window_set(popup_frame, WIN_SHOW, TRUE, 0); X X } X if (chdir(directory_table[value]) == -1) X printf("chdir failed with error number %d\n", errno); X else X*/ X} X void histogram_notify_proc() X{ X if (HISTOGRAM) X { X HISTOGRAM = FALSE; X window_set(histogram_frame, WIN_SHOW, FALSE, 0); X } X else X { X HISTOGRAM = TRUE; X plot_active(); X } X} X void processor_notify_proc() X{ X show_processor = !((int) window_get(processor_frame, WIN_SHOW)); X window_set(processor_frame, WIN_SHOW, show_processor, 0); X} X void legend_notify_proc() X{ X show_legend = !((int) window_get(legend_frame, WIN_SHOW)); X window_set(legend_frame, WIN_SHOW, show_legend, 0); X} X void screendump_notify_proc() X{ X char command[50]; X X if (fb_depth == 1) X { X display_message("Sending the screen image to the default printer."); X strcpy(command, "screendump | pssun -r -2 | lpr"); X system(command); X display_message("Done."); X } X else X display_message("Unable to dump color screen."); X} X void handle_event(canvas, event, arg) Canvas canvas; XEvent *event; caddr_t arg; X{ X int x, y; X char str[20]; X X x = event_x(event); X y = event_y(event); X switch (event_id(event)) X { X case MS_LEFT : X/* X printf("Left mouse x %d y %d \n",x,y); X*/ X if ( (CURRENT_NODE = node_search(x,y)) != -1 ) X { X sprintf(str,"Current node is %d", X NODE[0][CURRENT_NODE][ID]); X display_node(str); X }; X break; X case MS_MIDDLE : X/* X printf("Middle mouse x %d y %d \n",x,y); X*/ X if ( (CURRENT_NODE = node_search(x,y)) != -1 ) X { X sprintf(str,"Current node is %d", X NODE[0][CURRENT_NODE][ID]); X display_node(str); X }; X break; X case MS_RIGHT : X/* X printf("Right mouse x %d y %d \n",x,y); X*/ X if ( (CURRENT_NODE = node_search(x,y)) != -1 ) X { X sprintf(str,"Current node is %d", X NODE[0][CURRENT_NODE][ID]); X display_node(str); X }; X if (event_is_down(event)) prdata(); X break; X default : X break; X } X} X END_OF_FILE if test 7679 -ne `wc -c <'TRACE/SUNVIEW/procs.c'`; then echo shar: \"'TRACE/SUNVIEW/procs.c'\" unpacked with wrong size! fi # end of 'TRACE/SUNVIEW/procs.c' fi if test -f 'TRACE/SUNVIEW/sched.trace.icon' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/SUNVIEW/sched.trace.icon'\" else echo shar: Extracting \"'TRACE/SUNVIEW/sched.trace.icon'\" \(1933 characters\) sed "s/^X//" >'TRACE/SUNVIEW/sched.trace.icon' <<'END_OF_FILE' X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 X */ X 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0x8000,0x0000,0x0000,0x0001, X 0x8000,0x0000,0x0000,0x0001,0x80F3,0xC93C,0xE248,0x3C01, X 0x8082,0x0920,0x9248,0x2001,0x80F2,0x0F38,0x9248,0x3801, X 0x8012,0x0920,0x9248,0x2001,0x80F3,0xC93C,0xE3CF,0x3C01, X 0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001, X 0x8000,0x0000,0x0000,0x0001,0x81F3,0x821E,0x489E,0x0001, X 0x8042,0x4510,0x4C90,0x0001,0x8043,0x8890,0x4A96,0x0001, X 0x8042,0x8F90,0x4992,0x0001,0x8042,0x489E,0x489E,0x0001, X 0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001, X 0x8000,0x0000,0x0000,0x0001,0x80F0,0x8792,0x09F2,0x2001, X 0x8081,0x4412,0x0841,0x4001,0x80E2,0x2412,0x0840,0x8001, X 0x8083,0xE412,0x0840,0x8001,0x8082,0x2793,0xC840,0x8001, X 0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001, X 0x8000,0x0000,0x0000,0x0001,0x80FF,0xFFFF,0xFFFF,0xE001, X 0x8000,0x0000,0x0000,0x0001,0x8000,0x0000,0x0000,0x0001, X 0x8000,0x0000,0x0000,0x0001,0x8000,0x0001,0x8000,0x0001, X 0x8000,0x0001,0x8000,0x0001,0x8000,0x0002,0x4000,0x0001, X 0x8000,0x0004,0x2000,0x0001,0x8000,0x0008,0x1000,0x0001, X 0x8000,0x0010,0x0800,0x0001,0x8000,0x0020,0x0400,0x0001, X 0x8000,0x0040,0x0200,0x0001,0x8000,0x0080,0x0100,0x0001, X 0x8000,0x0100,0x0080,0x0001,0x8000,0x0200,0x0040,0x0001, X 0x8000,0x0C00,0x0030,0x0001,0x8000,0x0C00,0x0030,0x0001, X 0x8000,0x1200,0x0048,0x0001,0x8000,0x1200,0x0048,0x0001, X 0x8000,0x2100,0x0084,0x0001,0x8000,0x2100,0x0084,0x0001, X 0x8000,0x4080,0x0102,0x0001,0x8000,0x4080,0x0102,0x0001, X 0x8000,0x8040,0x0201,0x0001,0x8000,0x8040,0x0201,0x0001, X 0x8003,0x0030,0x0C00,0xC001,0x8003,0x0030,0x0C00,0xC001, X 0x8004,0x8048,0x1201,0x2001,0x8004,0x8048,0x1201,0x2001, X 0x8004,0x8048,0x1201,0x2001,0x8008,0x4084,0x2102,0x1001, X 0x8008,0x4084,0x2102,0x1001,0x8008,0x4084,0x2102,0x1001, X 0x8018,0x6186,0x6186,0x1801,0x8018,0x6186,0x6186,0x1801, X 0x8000,0x0000,0x0000,0x0001,0xFFFF,0xFFFF,0xFFFF,0xFFFF END_OF_FILE if test 1933 -ne `wc -c <'TRACE/SUNVIEW/sched.trace.icon'`; then echo shar: \"'TRACE/SUNVIEW/sched.trace.icon'\" unpacked with wrong size! fi # end of 'TRACE/SUNVIEW/sched.trace.icon' fi if test -f 'TRACE/SUNVIEW/wd_drawing.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/SUNVIEW/wd_drawing.c'\" else echo shar: Extracting \"'TRACE/SUNVIEW/wd_drawing.c'\" \(5885 characters\) sed "s/^X//" >'TRACE/SUNVIEW/wd_drawing.c' <<'END_OF_FILE' X/* This file contains the window dependent drawing routines. X*/ X#include "sched.trace.h" X point(surface, x, y, color, xormode) Surface surface; int x, y, color, xormode; X{ X int op; X X if (xormode == XOR) X pw_rop(surface, x, y, 1, 1, PIX_SRC ^ PIX_DST | PIX_COLOR(color), X NULL, 0, 0); X else X pw_put(surface, x, y, color); X} X line(surface, x1, y1, x2, y2, color) Surface surface; int x1, y1, x2, y2, color; X{ X pw_vector(surface, x1, y1, x2, y2, PIX_SRC, color); X} X fillcircle(surface, x, y, radius, color, xormode) Surface surface; int x,y, radius, color, xormode; X{ X pw_vector(surface, x, y, x+radius, y+radius, PIX_SRC, color); X} X verline(surface, x, y, ydistance, color, xormode) Surface surface; int x, y, ydistance, color, xormode; X{ X int op; X X op = PIX_SRC; X if (xormode == XOR) X op ^= PIX_DST; X pw_vector(surface, x, y, x, y+ydistance, op, color); X} X horline(surface, x, y, xdistance, color, xormode) Surface surface; int x, y, xdistance, color, xormode; X{ X int op; X X op = PIX_SRC; X if (xormode == XOR) X op ^= PIX_DST; X pw_vector(surface, x, y, x+xdistance, y, op, color); X} X text(surface, x, y, string) Surface surface; int x, y; char *string; X{ X pw_text(surface, x, y, PIX_SRC, 0, string); X} X put_char(surface, x, y, c) Surface surface; int x, y; char c; X{ X pw_char(surface, x, y, PIX_SRC, 0, c); X} X erase(surface, x, y, w, h) Surface surface; int x, y, w, h; X{ X pw_writebackground(surface, x, y, w, h, PIX_CLR); X} X clearscreen(surface, x, y) Surface surface; int x, y; X{ X pw_writebackground(surface, 0, 0, x, y, PIX_CLR); X} X set_directory_menu() X{ X int i; X char current_dir[150]; X panel_set(directory_choice, PANEL_CHOICE_STRINGS, "", 0, 0); X for (i = 0; directory_table[i] != NULL; i++) X panel_set(directory_choice, PANEL_CHOICE_STRING, X i, directory_table[i], 0); X panel_set(directory_choice, PANEL_CHOICE_STRING, X i, "Enter new directory.", 0); X enter_new_directory = i; X strcpy(current_dir, "Directory: "); X getwd(current_dir + 11); X panel_set(directory_choice, PANEL_LABEL_STRING, current_dir, 0); X} X set_file_menu() X{ X int i; X char current_file[150]; X panel_set(file_choice,PANEL_CHOICE_STRINGS, "", 0, 0); X for (i = 0; file_table[i] != NULL; i++) X panel_set(file_choice, PANEL_CHOICE_STRING, i, file_table[i], 0); X ft_index = 0; X if (file_table[ft_index] != NULL) X { X strcpy(current_file, "Trace file: "); X strcpy(current_file + 12, file_table[ft_index]); X panel_set(file_choice,PANEL_LABEL_STRING, current_file, 0); X display_message("Select file & click load."); X } X else X { X strcpy(current_file, "Trace file: "); X strcpy(current_file + 12, ""); X panel_set(file_choice,PANEL_LABEL_STRING, current_file, 0); X display_message("No trace files in the current directory."); X } X} X set_label(item, string) Panel_item item; char *string; X{ X panel_set(item, PANEL_LABEL_STRING, string, 0); X} X display_node(text) X char *text; X{ X panel_set(nodetext, PANEL_LABEL_STRING, text, 0); X} X display_path(text) X char *text; X{ X panel_set(pathtext, PANEL_LABEL_STRING, text, 0); X} X display_message(text) X char *text; X{ X panel_set(msgtext, PANEL_LABEL_STRING, text, 0); X} X update_event_counter(time) float time; X{ X panel_set(count_slider, PANEL_VALUE, ROUND(time), 0); X} X update_active_counter(count) int count; X{ X panel_set(cw_slider, PANEL_VALUE, count, 0); X} X reset_values() X{ X panel_set(directiontext, PANEL_LABEL_STRING, "Direction : forward", 0); X panel_set(direction_button, PANEL_LABEL_IMAGE, X panel_button_image(panel, "Forward ", 0, NULL), X 0); X panel_set(count_slider, PANEL_VALUE, 0, 0); X panel_set(cw_slider, PANEL_VALUE, pending, 0); X panel_set(t_speed_slider, PANEL_VALUE, t_speed, 0); X panel_set(e_speed_slider, PANEL_VALUE, e_speed, 0); X} X plot_active() X{ X X window_set(histogram_frame, WIN_SHOW, TRUE, 0); X scrollbar_scroll_to(v_bar, 300, 0); X scrollbar_scroll_to(h_bar, 395, 0); X plot_active2(); X} X get_text_width(string) char *string; X{ X struct pr_size size; X size = pf_textwidth(strlen(string), pf_default(), string); X return(size.x); X} X get_text_height() X{ X int height; X struct pixfont *pf; X pf = pf_default(); X height = (pf->pf_defaultsize.y)/2; X pf_close(pf); X return(height); X} X create_path_menu(event) XEvent *event; X{ X int i, path_number; X struct critical_path *cp_ptr; X i = 0; X path_menu = menu_create(0); X cp_ptr = c_path; X while (cp_ptr != NULL_PTR) X { X char *string; X string = (char *) malloc(80); X sprintf (string, X "Time = %f, Leaf node = %d.", X cp_ptr->time, X NODE[0][cp_ptr->path->index][ID]); X menu_set(path_menu, MENU_STRING_ITEM, string, ++i, 0); X cp_ptr = cp_ptr->next_path; X } X path_number = (int) menu_show(path_menu, panel, event, 0); X return(path_number); X} X create_names_menu(event) XEvent *event; X{ X int i, j; X Menu name_menu, dyname_menus[MAXNODES]; X X name_menu = menu_create(0); X for (i = 0; i < HINOD; i++) X { X char *string; X string = (char *) malloc(80); X sprintf (string, X "Node # %d = %s.", X NODE[0][i][ID], X &NAMES[i][0][0]); X menu_set(name_menu, MENU_STRING_ITEM, string, i+1, 0); X if (DYNNODE[i][0][0] > 1) X { X dyname_menus[i] = menu_create(0); X menu_set(menu_get(name_menu, MENU_NTH_ITEM, i+1), X MENU_PULLRIGHT, dyname_menus[i], 0); X for (j = 1; j < DYNNODE[i][0][0]; j++) X { X string = (char *) malloc(80); X sprintf (string, X "Dynamic node # %d = %s.", X DYNNODE[i][j][ID], X &NAMES[i][j][0]); X menu_set(dyname_menus[i], MENU_STRING_ITEM, string, j, 0); X } X } X } X menu_show(name_menu, panel, event, 0); X} END_OF_FILE if test 5885 -ne `wc -c <'TRACE/SUNVIEW/wd_drawing.c'`; then echo shar: \"'TRACE/SUNVIEW/wd_drawing.c'\" unpacked with wrong size! fi # end of 'TRACE/SUNVIEW/wd_drawing.c' fi if test -f 'TRACE/SUNVIEW/window_init.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/SUNVIEW/window_init.c'\" else echo shar: Extracting \"'TRACE/SUNVIEW/window_init.c'\" \(12363 characters\) sed "s/^X//" >'TRACE/SUNVIEW/window_init.c' <<'END_OF_FILE' X#include "sched.trace.h" X extern void load_notify_proc(), X go_notify_proc(), X step_notify_proc(), X stop_notify_proc(), X direction_notify_proc(), X full_notify_proc(), X timing_notify_proc(), X subtree_notify_proc(), X prepath_notify_proc(), X c_time_notify_proc(), X name_notify_proc(), X path_notify_proc(), X redraw_notify_proc(), X histogram_notify_proc(), X contrast_notify_proc(), X processor_notify_proc(), X legend_notify_proc(), X screendump_notify_proc(), X quit_notify_proc(), X e_speed_notify_proc(), X t_speed_notify_proc(), X count_notify_proc(), X directory_notify_proc(), X file_notify_proc(), X handle_event(); X static short icon_image[] = X{ X#include "sched.trace.icon" X}; X DEFINE_ICON_FROM_IMAGE (sched_trace_icon, icon_image); X window_init() X { X X Pixwin *panel_pw; X int i, height, yoffset; X struct pixfont *title_font, *pf; X X frame = window_create(NULL, FRAME, X WIN_ROWS, 45, X WIN_COLUMNS, 95, X FRAME_ICON, &sched_trace_icon, X WIN_X, 200, X WIN_Y, 170, X 0); X panel = window_create(frame, PANEL, X WIN_PERCENT_HEIGHT, 30, X 0); X if (((Pixwin *) window_get(panel, WIN_PIXWIN))->pw_pixrect->pr_depth > 1) X { X panel_pw = (Pixwin *) window_get(panel, WIN_PIXWIN); X set_pw_map(panel_pw, "Panel_color_map"); X } X histogram_frame = window_create(NULL, FRAME, X WIN_ROWS, 11, X WIN_COLUMNS, 60, X WIN_X, 0, X WIN_Y, 0, X 0); X processor_frame = window_create(NULL, FRAME, X WIN_ROWS, 8, X WIN_COLUMNS, 60, X WIN_X, 500, X WIN_Y, 0, X 0); X legend_frame = window_create(frame, FRAME, X WIN_ROWS, 11, X WIN_COLUMNS, 50, X WIN_X, 550, X WIN_Y, 550, X 0); X window_fit(histogram_frame); X window_fit(processor_frame); X window_fit(legend_frame); X title_font = pf_open("/usr/lib/fonts/fixedwidthfonts/gallant.r.19"); X title = panel_create_item(panel, PANEL_MESSAGE, X PANEL_ITEM_X, ATTR_COL(23), X PANEL_ITEM_Y, ATTR_ROW(0), X PANEL_LABEL_STRING, "Schedule Tracing Facility", X PANEL_LABEL_FONT, title_font, X 0); X directory_choice = panel_create_item(panel, PANEL_CHOICE, X PANEL_ITEM_X, ATTR_COL(1), X PANEL_ITEM_Y, ATTR_ROW(1), X PANEL_LABEL_STRING, "Directory: ", X PANEL_DISPLAY_LEVEL, PANEL_NONE, X PANEL_NOTIFY_PROC, directory_notify_proc, X 0); X file_choice = panel_create_item(panel, PANEL_CHOICE, X PANEL_ITEM_X, ATTR_COL(1), X PANEL_ITEM_Y, ATTR_ROW(2), X PANEL_LABEL_STRING, "Trace file: ", X PANEL_DISPLAY_LEVEL, PANEL_NONE, X PANEL_NOTIFY_PROC, file_notify_proc, X 0); X count_slider = panel_create_item(panel, PANEL_SLIDER, X PANEL_ITEM_X, ATTR_COL(5), X PANEL_ITEM_Y, ATTR_ROW(3), X PANEL_VALUE, 0, X PANEL_MIN_VALUE, 0, X PANEL_MAX_VALUE, 100, X PANEL_SLIDER_WIDTH, 400, X PANEL_SHOW_RANGE, TRUE, X PANEL_SHOW_VALUE, TRUE, X PANEL_LABEL_STRING, "Time ", X PANEL_NOTIFY_PROC, count_notify_proc, X 0); X cw_slider = panel_create_item(panel, PANEL_SLIDER, X PANEL_ITEM_X, ATTR_COL(5), X PANEL_ITEM_Y, ATTR_ROW(4), X PANEL_VALUE, 0, X PANEL_MIN_VALUE, 0, X PANEL_MAX_VALUE, 100, X PANEL_SLIDER_WIDTH, 400, X PANEL_SHOW_RANGE, FALSE, X PANEL_SHOW_VALUE, TRUE, X PANEL_LABEL_STRING, "Active Processes", X 0); X t_speed_slider = panel_create_item(panel, PANEL_SLIDER, X PANEL_ITEM_X, ATTR_COL(5), X PANEL_ITEM_Y, ATTR_ROW(5), X PANEL_VALUE, 100, X PANEL_MIN_VALUE, 0, X PANEL_MAX_VALUE, 100, X PANEL_SLIDER_WIDTH, 400, X PANEL_SHOW_RANGE, TRUE, X PANEL_SHOW_VALUE, TRUE, X PANEL_LABEL_STRING, "Timing Speed", X PANEL_NOTIFY_PROC, t_speed_notify_proc, X 0); X e_speed_slider = panel_create_item(panel, PANEL_SLIDER, X PANEL_ITEM_X, ATTR_COL(5), X PANEL_ITEM_Y, ATTR_ROW(6), X PANEL_VALUE, 100, X PANEL_MIN_VALUE, 0, X PANEL_MAX_VALUE, 100, X PANEL_SLIDER_WIDTH, 400, X PANEL_SHOW_RANGE, TRUE, X PANEL_SHOW_VALUE, TRUE, X PANEL_LABEL_STRING, "Event Speed", X PANEL_NOTIFY_PROC, e_speed_notify_proc, X 0); X window_set(panel, PANEL_ITEM_X_GAP, 5, 0); X load_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_ITEM_X, ATTR_COL(1), X PANEL_ITEM_Y, ATTR_ROW(7), X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Load",0,NULL), X PANEL_NOTIFY_PROC, load_notify_proc, X 0); X go_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Go",0,NULL), X PANEL_NOTIFY_PROC, go_notify_proc, X 0); X stop_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Stop",0,NULL), X PANEL_NOTIFY_PROC, stop_notify_proc, X 0); X direction_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel, "Forward ", 0, NULL), X PANEL_NOTIFY_PROC, direction_notify_proc, X 0); X step_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Step",0,NULL), X PANEL_NOTIFY_PROC, step_notify_proc, X 0); X full_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Full",0,NULL), X PANEL_NOTIFY_PROC, full_notify_proc, X 0); X c_time_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Critical time",0,NULL), X PANEL_NOTIFY_PROC, c_time_notify_proc, X 0); X name_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Process name",0,NULL), X PANEL_NOTIFY_PROC, name_notify_proc, X 0); X quit_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_ITEM_X, ATTR_COL(85), X PANEL_ITEM_Y, ATTR_ROW(7), X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Quit",0,NULL), X PANEL_NOTIFY_PROC, quit_notify_proc, X 0); X subtree_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_ITEM_X, ATTR_COL(1), X PANEL_ITEM_Y, ATTR_ROW(8), X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Subtree",0,NULL), X PANEL_NOTIFY_PROC, subtree_notify_proc, X 0); X redraw_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Redraw",0,NULL), X PANEL_NOTIFY_PROC, redraw_notify_proc, X 0); X histogram_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Histogram",0,NULL), X PANEL_NOTIFY_PROC, histogram_notify_proc, X 0); X processor_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Processor",0,NULL), X PANEL_NOTIFY_PROC, processor_notify_proc, X 0); X legend_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Legend",0,NULL), X PANEL_NOTIFY_PROC, legend_notify_proc, X 0); X contrast_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Contrast",0,NULL), X PANEL_NOTIFY_PROC, contrast_notify_proc, X 0); X screendump_button = panel_create_item(panel, PANEL_BUTTON, X PANEL_LABEL_IMAGE, X panel_button_image(panel,"Screen dump",0,NULL), X PANEL_NOTIFY_PROC, screendump_notify_proc, X 0); X window_set(panel, PANEL_ITEM_X_GAP, 10, 0); X nodetext = panel_create_item(panel, PANEL_MESSAGE, X PANEL_ITEM_X, ATTR_COL(50), X PANEL_ITEM_Y, ATTR_ROW(9), X PANEL_LABEL_STRING, "Current node ", X 0); X pathtext = panel_create_item(panel, PANEL_MESSAGE, X PANEL_ITEM_X, ATTR_COL(5), X PANEL_ITEM_Y, ATTR_ROW(9), X PANEL_LABEL_STRING, " ", X 0); X msgtext = panel_create_item(panel, PANEL_MESSAGE, X PANEL_ITEM_X, ATTR_COL(60), X PANEL_ITEM_Y, ATTR_ROW(1), X PANEL_LABEL_STRING, "No active file", X 0); X directiontext = panel_create_item(panel, PANEL_MESSAGE, X PANEL_ITEM_X, ATTR_COL(60), X PANEL_ITEM_Y, ATTR_ROW(2), X PANEL_LABEL_STRING, "Direction : forward", X 0); X canvas = window_create(frame,CANVAS, X CANVAS_WIDTH, 1000, X CANVAS_HEIGHT, 1000, X WIN_PERCENT_HEIGHT, 70, X CANVAS_AUTO_SHRINK, FALSE, X WIN_VERTICAL_SCROLLBAR, scrollbar_create(0), X WIN_HORIZONTAL_SCROLLBAR, scrollbar_create(0), X WIN_EVENT_PROC, handle_event, X 0); X histogram_canvas = window_create(histogram_frame, CANVAS, X CANVAS_WIDTH, 1000, X CANVAS_HEIGHT, 400, X CANVAS_AUTO_SHRINK, FALSE, X WIN_VERTICAL_SCROLLBAR, v_bar=scrollbar_create(0), X WIN_HORIZONTAL_SCROLLBAR, h_bar=scrollbar_create(0), X 0); X processor_canvas = window_create(processor_frame, CANVAS, X CANVAS_AUTO_SHRINK, FALSE, X 0); X legend_canvas = window_create(legend_frame, CANVAS, X CANVAS_AUTO_SHRINK, FALSE, X 0); X pw = canvas_pixwin(canvas); X pw2 = canvas_pixwin(histogram_canvas); X pw_processor = canvas_pixwin(processor_canvas); X pw_legend = canvas_pixwin(legend_canvas); X fb_depth = pw->pw_pixrect->pr_depth; X if (fb_depth > 1) X { X set_pw_map(pw, "Canvas_color_map"); X set_pw_map(pw_legend, "Legend_color_map"); X } X else X { X my_color_map[WHITE] = my_color_map[BACKGROUND] = 0; X my_color_map[BLACK] = 1; X } X legend(); X} END_OF_FILE if test 12363 -ne `wc -c <'TRACE/SUNVIEW/window_init.c'`; then echo shar: \"'TRACE/SUNVIEW/window_init.c'\" unpacked with wrong size! fi # end of 'TRACE/SUNVIEW/window_init.c' fi if test -f 'TRACE/X/Slider.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/Slider.c'\" else echo shar: Extracting \"'TRACE/X/Slider.c'\" \(7332 characters\) sed "s/^X//" >'TRACE/X/Slider.c' <<'END_OF_FILE' X#include X#include X#include X#include X#include X#include X#include "SliderP.h" X extern Display display; X static Boolean defFalse = False; static Boolean defTrue = True; static int def100 = 100; static int def0 = 0; X X#define offset(field) XtOffset(SliderWidget,slider.field) static XtResource resources[] = X{ X {XtNlabel, XtCLabel, XtRString, sizeof(String), X offset(label), XtRString, NULL}, X {XtNmaxValue, XtCValue, XtRInt, sizeof(int), X offset(max_value), XtRInt, (caddr_t)&def100}, X {XtNminValue, XtCValue, XtRInt, sizeof(int), X offset(min_value), XtRInt, (caddr_t)&def0}, X {XtNshowRange, XtCBoolean, XtRBoolean, sizeof(Boolean), X offset(show_range), XtRBoolean, (caddr_t)&defTrue}, X {XtNshowValue, XtCBoolean, XtRBoolean, sizeof(Boolean), X offset(show_value), XtRBoolean, (caddr_t)&defTrue}, X {XtNsliderValue, XtCValue, XtRInt, sizeof(int), X offset(current_value), XtRInt, (caddr_t)&def0}, X {XtNsliderWidth, XtCWidth, XtRInt, sizeof(int), X offset(width), XtRInt, (caddr_t)&def100}, X}; X#undef offset X static void Initialize(), ConstraintInitialize(); static Boolean SetValues(); X X#define superclass (&formClassRec) SliderClassRec sliderClassRec = { X { /* core_class fields */ X /* superclass */ (WidgetClass) superclass, X /* class_name */ "Slider", X /* widget_size */ sizeof(SliderRec), X /* class_initialize */ NULL, X /* class_part_init */ NULL, X /* class_inited */ FALSE, X /* initialize */ Initialize, X /* initialize_hook */ NULL, X /* realize */ XtInheritRealize, X /* actions */ NULL, X /* num_actions */ 0, X /* resources */ resources, X /* num_resources */ XtNumber(resources), X /* xrm_class */ NULLQUARK, X /* compress_motion */ TRUE, X /* compress_exposure */ TRUE, X /* compress_enterleave*/ TRUE, X /* visible_interest */ FALSE, X /* destroy */ NULL, X /* resize */ XtInheritResize, X /* expose */ XtInheritExpose, X /* set_values */ SetValues, X /* set_values_hook */ NULL, X /* set_values_almost */ XtInheritSetValuesAlmost, X /* get_values_hook */ NULL, X /* accept_focus */ NULL, X /* version */ XtVersion, X /* callback_private */ NULL, X /* tm_table */ NULL, X /* query_geometry */ XtInheritQueryGeometry, X /* display_accelerator*/ XtInheritDisplayAccelerator, X /* extension */ NULL X }, X { /* composite_class fields */ X /* geometry_manager */ XtInheritGeometryManager, X /* change_managed */ XtInheritChangeManaged, X /* insert_child */ XtInheritInsertChild, X /* delete_child */ XtInheritDeleteChild, X /* extension */ NULL X }, X { /* constraint_class fields */ X /* subresourses */ NULL, X /* subresource_count */ 0, X /* constraint_size */ sizeof(SliderConstraintsRec), X /* initialize */ ConstraintInitialize, X /* destroy */ NULL, X /* set_values */ NULL, X /* extension */ NULL X }, X { /* form_class fields */ X /* empty */ 0 X }, X { /* slider_class fields */ X /* empty */ 0 X } X}; X X WidgetClass sliderWidgetClass = (WidgetClass)&sliderClassRec; X static void Initialize(request, new) Widget request, new; X{ X char string[10]; X Widget last_widget; X SliderWidget w = (SliderWidget)new; X Arg args[7]; X Pixel value; X X/* X XtSetArg(args[0], XtNbackground, &value); X XtGetValues(new, args, XtNumber(args)); X printf("In init slider: get background color = %d.\n", (int) value); X*/ X X XtSetArg(args[0], XtNborderWidth, (XtArgVal) 0); X/* X XtSetArg(args[1], XtNfont, (XtArgVal)XLoadQueryFont(display, X "-adobe-times-medium-r-*-*-20-*-*-*-*-*-*-*")); X*/ X XtSetArg(args[1], NULL, NULL); X XtSetArg(args[2], NULL, NULL); X XtSetArg(args[3], NULL, NULL); X XtSetArg(args[4], NULL, NULL); X XtSetArg(args[5], NULL, NULL); X X w->slider.name_label = w->slider.current_label X = w->slider.min_label = w->slider.max_label X = (Widget)NULL; X X if (w->slider.label == NULL) X w->slider.label = w->core.name; X else X w->slider.label = strcpy(XtMalloc(strlen(w->slider.label) + 1), X w->slider.label); X last_widget = w->slider.name_label X = XtCreateManagedWidget(w->slider.label, labelWidgetClass, X new, args, XtNumber(args) ); X if(w->slider.show_value) X { X sprintf(string, "[%d]", w->slider.min_value); X XtSetArg(args[1], XtNfromHoriz, (XtArgVal) last_widget); X last_widget = w->slider.current_label X = XtCreateManagedWidget(string, labelWidgetClass, X new, args, XtNumber(args)); X } X if(w->slider.show_range) X { X sprintf(string, "%d", w->slider.min_value); X XtSetArg(args[1], XtNfromHoriz, (XtArgVal) last_widget); X XtSetArg(args[2], XtNhorizDistance, (XtArgVal) 15); X last_widget = w->slider.min_label X = XtCreateManagedWidget(string, labelWidgetClass, X new, args, XtNumber(args)); X } X XtSetArg(args[0], NULL, NULL); X XtSetArg(args[1], XtNfromHoriz, (XtArgVal) last_widget); X XtSetArg(args[2], XtNorientation, (XtArgVal) XtorientHorizontal); X XtSetArg(args[3], XtNlength, (XtArgVal) w->slider.width); X XtSetArg(args[4], XtNthickness, (XtArgVal) 17); X if (!(w->slider.show_range)) X XtSetArg(args[5], XtNhorizDistance, (XtArgVal) 15); X last_widget = w->slider.slider X = XtCreateManagedWidget("slide", scrollbarWidgetClass, X new, args, XtNumber(args)); X XtScrollBarSetThumb(w->slider.slider, 0.0, 0.0); X if(w->slider.show_range) X { X sprintf(string, "%d", w->slider.max_value); X XtSetArg(args[0], XtNborderWidth, (XtArgVal) 0); X XtSetArg(args[1], XtNfromHoriz, (XtArgVal) last_widget); X XtSetArg(args[2], NULL, NULL); X XtSetArg(args[3], NULL, NULL); X XtSetArg(args[4], NULL, NULL); X XtSetArg(args[5], NULL, NULL); X w->slider.max_label = XtCreateManagedWidget(string, labelWidgetClass, X new, args, XtNumber(args)); X } X} X static void ConstraintInitialize(request, new) Widget request, new; X{ X} X static Boolean SetValues(current, request, new) Widget current, request, new; X{ X char string[10]; X float value; X Arg args[1]; X SliderWidget w = (SliderWidget)new; X SliderWidget cw = (SliderWidget)current; X X if (w->slider.current_value != cw->slider.current_value) X { X if(w->slider.show_value) X { X sprintf(string, "[%d]", w->slider.current_value); X XtSetArg(args[0], XtNlabel, (XtArgVal) string); X XtSetValues(w->slider.current_label, args, XtNumber(args)); X } X } X value = (float) (w->slider.current_value - w->slider.min_value) / X (float) (w->slider.max_value - w->slider.min_value); X XtScrollBarSetThumb(w->slider.slider, 0.0, value); X/* X (*w->core.widget_class->core_class.resize)( new ); X return False; X*/ X} END_OF_FILE if test 7332 -ne `wc -c <'TRACE/X/Slider.c'`; then echo shar: \"'TRACE/X/Slider.c'\" unpacked with wrong size! fi # end of 'TRACE/X/Slider.c' fi if test -f 'TRACE/X/Slider.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/Slider.h'\" else echo shar: Extracting \"'TRACE/X/Slider.h'\" \(1417 characters\) sed "s/^X//" >'TRACE/X/Slider.h' <<'END_OF_FILE' X/* Public definitions for Slider widget. Orlie Brewer. */ X X#ifndef _Slider_h X#define _Slider_h X X#include X X/* Resources: X X Name Class RepType Default Value X ---- ----- ------- ------------- X background Background Pixel XtDefaultBackground X border BorderColor Pixel XtDefaultForeground X borderWidth BorderWidth Dimension 1 X destroyCallback Callback Pointer NULL X height Height Dimension 0 X label Label String NULL X mappedWhenManaged MappedWhenManaged Boolean True X sensitive Sensitive Boolean True X width Width Dimension 0 X x Position Position 0 X y Position Position 0 X X*/ X X/* fields added to Form */ X#define XtNmaxValue "maxValue" X#define XtNminValue "minValue" X#define XtNshowRange "showRange" X#define XtNshowValue "showValue" X#define XtNsliderValue "sliderValue" X#define XtNsliderWidth "sliderWidth" X extern WidgetClass sliderWidgetClass; X typedef struct _SliderClassRec *SliderWidgetClass; typedef struct _SliderRec *SliderWidget; X X#endif _Slider_h END_OF_FILE if test 1417 -ne `wc -c <'TRACE/X/Slider.h'`; then echo shar: \"'TRACE/X/Slider.h'\" unpacked with wrong size! fi # end of 'TRACE/X/Slider.h' fi if test -f 'TRACE/X/SliderP.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/SliderP.h'\" else echo shar: Extracting \"'TRACE/X/SliderP.h'\" \(1196 characters\) sed "s/^X//" >'TRACE/X/SliderP.h' <<'END_OF_FILE' X/* Private declarations for SliderWidgetClass. Orlie Brewer. */ X X#ifndef _SliderP_h X#define _SliderP_h X X#include X#include "Slider.h" X typedef struct {int empty;} SliderClassPart; X typedef struct _SliderClassRec X{ X CoreClassPart core_class; X CompositeClassPart composite_class; X ConstraintClassPart constraint_class; X FormClassPart form_class; X SliderClassPart slider_class; X} SliderClassRec; X extern SliderClassRec sliderClassRec; X typedef struct _SliderPart X{ X /* resources */ X int min_value, max_value, current_value, width; X char *label; X Boolean show_range, show_value; X /* private state */ X Widget name_label, current_label, min_label, max_label; X Widget slider; X} SliderPart; X typedef struct _SliderRec X{ X CorePart core; X CompositePart composite; X ConstraintPart constraint; X FormPart form; X SliderPart slider; X} SliderRec; X typedef struct X{ X /* resources */ X X /* private state */ X int empty; X} SliderConstraintsPart; X typedef struct _SliderConstraintsRec X{ X FormConstraintsPart form; X SliderConstraintsPart slider; X} SliderConstraintsRec, *SliderConstraints; X X#endif _SliderP_h END_OF_FILE if test 1196 -ne `wc -c <'TRACE/X/SliderP.h'`; then echo shar: \"'TRACE/X/SliderP.h'\" unpacked with wrong size! fi # end of 'TRACE/X/SliderP.h' fi if test -f 'TRACE/X/c_time.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/c_time.c'\" else echo shar: Extracting \"'TRACE/X/c_time.c'\" \(1763 characters\) sed "s/^X//" >'TRACE/X/c_time.c' <<'END_OF_FILE' X#include "sched.trace.h" X int path_number = -1; X c_time(button) Widget button; X/* XEvent *event; X*/ X{ X/* X int i, leaf_node; X struct path_node *path, *find_critical_path(); X struct critical_path *cp_ptr, *temp_ptr; X X if (find_paths) X { X int first_node = TRUE; X find_paths = FALSE; X for (i = 0; i < HINOD; i++) X if (NODE[0][i][PNCH] == 0) Check all leaf nodes. / X { X temp_ptr = (struct critical_path *) X malloc(sizeof(struct critical_path)); X temp_ptr->time = 0; X temp_ptr->path = find_critical_path(i, &temp_ptr->time); X if (first_node == TRUE) First time through. / X { X first_node = FALSE; X c_path = temp_ptr; X c_path->next_path = NULL_PTR; X } X else Insert temp_ptr in decending time order. / X { X if (temp_ptr->time > c_path->time) X { X temp_ptr->next_path = c_path; X c_path = temp_ptr; X } X else Do insertion sort. / X { X struct critical_path *ptr1, *ptr2; X ptr1 = c_path; X ptr2 = c_path->next_path; X while (ptr2 != NULL_PTR && X ptr2->time > temp_ptr->time) X { X ptr1 = ptr2; X ptr2 = ptr1->next_path; X } X ptr1->next_path = temp_ptr; X temp_ptr->next_path = ptr2; X } X } X } X } X Create the path popup menu. */ X create_path_menu(button); X} END_OF_FILE if test 1763 -ne `wc -c <'TRACE/X/c_time.c'`; then echo shar: \"'TRACE/X/c_time.c'\" unpacked with wrong size! fi # end of 'TRACE/X/c_time.c' fi if test -f 'TRACE/X/color_stuff.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/color_stuff.c'\" else echo shar: Extracting \"'TRACE/X/color_stuff.c'\" \(3035 characters\) sed "s/^X//" >'TRACE/X/color_stuff.c' <<'END_OF_FILE' X#include "sched.trace.h" X static int color_array_set = 0; /* flag to show the array is initialized */ X set_colormap(depth) int depth; X{ X int status; X Colormap color_map; X XColor color_info; X X if(color_array_set) X return; X X if (depth > 1) X { X color_map = XDefaultColormap(display, DefaultScreen(display)); X X color_info.red = 65535; X color_info.blue = 65535; X color_info.green = 65535; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[WHITE] = color_info.pixel; X X color_info.red = 25700; X color_info.green = 56540; X color_info.blue = 65535; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[BACKGROUND] = color_info.pixel; X X /* red */ X color_info.red = 65535; X color_info.green = 38550; X color_info.blue = 38550; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[RED] = color_info.pixel; X X /* green */ X color_info.red = 0; X color_info.green = 65535; X color_info.blue = 44975; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[GREEN] = color_info.pixel; X X /* blue */ X color_info.red = 0; X color_info.green = 0; X color_info.blue = 65535; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[BLUE] = color_info.pixel; X X /* yellow */ X color_info.red = 65535; X color_info.green = 65535; X color_info.blue = 41120; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[YELLOW] = color_info.pixel; X X /* turquoise sic? */ X color_info.red = 0; X color_info.green = 65535; X color_info.blue = 65535; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[TURQUOISE] = color_info.pixel; X X /* magenta (purple) */ X color_info.red = 65535; X color_info.green = 0; X color_info.blue = 65535; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[MAGENTA] = color_info.pixel; X X /* black foreground */ X color_info.red = 0; X color_info.green = 0; X color_info.blue = 0; X status = XAllocColor(display, color_map, &color_info); X if (!status) printf("Status = %d.\n", status); X my_color_map[BLACK] = color_info.pixel; X } X else X { X my_color_map[WHITE] = my_color_map[BACKGROUND] X = WhitePixel(display, XDefaultScreen(display)); X my_color_map[BLACK] = BlackPixel(display, XDefaultScreen(display)); X } X color_array_set = 1; X} END_OF_FILE if test 3035 -ne `wc -c <'TRACE/X/color_stuff.c'`; then echo shar: \"'TRACE/X/color_stuff.c'\" unpacked with wrong size! fi # end of 'TRACE/X/color_stuff.c' fi if test -f 'TRACE/X/main.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/main.c'\" else echo shar: Extracting \"'TRACE/X/main.c'\" \(1061 characters\) sed "s/^X//" >'TRACE/X/main.c' <<'END_OF_FILE' X#include "sched.trace.h" X main(argc,argv) int argc; char **argv; X{ X window_init(&argc, argv); X program_init(); X X_loop(); X} X program_init() X{ X XOFFSET = 20; X YOFFSET = 50; X XSIZE = 40; X YSIZE = 20; X DYNZONE = 60; X forward = TRUE; X event_list = (struct event *) malloc(sizeof(struct event)); X trailer_event = (struct event *) malloc(sizeof(struct event)); X event_list->previous_event = NULL_PTR; X event_list->next_event = trailer_event; X trailer_event->previous_event = event_list; X trailer_event->next_event = NULL_PTR; X file_table[0] = NULL; X directory_table[0] = NULL; X load_tables(); X} X XX_loop() X{ X text(pw, 15, 150, X"Hello, this is a graphics tool to trace the execution of programs that used \ SCHEDULE."); X text(pw, 15, 170, X"Select your file, click LOAD, and then click GO or STEP."); X text(pw, 15, 190, X"If you choose GO, you may stop execution at any time by clicking STOP \ or STEP."); X text(pw, 15, 210, X"You may then step through the execution by using STEP or continue execution \ by clicking GO."); X X XtMainLoop(); X} END_OF_FILE if test 1061 -ne `wc -c <'TRACE/X/main.c'`; then echo shar: \"'TRACE/X/main.c'\" unpacked with wrong size! fi # end of 'TRACE/X/main.c' fi if test -f 'TRACE/X/makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/makefile'\" else echo shar: Extracting \"'TRACE/X/makefile'\" \(2461 characters\) sed "s/^X//" >'TRACE/X/makefile' <<'END_OF_FILE' X# CFLAGS = -D_BSD -g -DX -I./../src LFLAGS = X# OBJS = main.o \ X active.o \ X assign_xy.o \ X atlevel.o \ X build_levels.o \ X color_stuff.o \ X c_time.o \ X drawing.o \ X draw_level.o \ X draw_path.o \ X draw_subtree.o \ X events.o \ X find_parents.o \ X get_path_len.o \ X pathes.o \ X legend.o \ X load.o \ X new_tree.o \ X open_tracefi.o \ X procs.o \ X rebuild.o \ X searches.o \ X Slider.o \ X wd_drawing.o \ X window_init.o X#X11R3: LIBS = -lXaw -lXmu -lXt -lX11 -lm X#X11R2: X#LIBS = libXaw.a -lXt -lX11 -lm X# c_time.o \ X# draw_path.o \ X# dumps.o \ X# pathes.o \ X# X../xsched.trace: $(OBJS) X cc $(CFLAGS) $(LFLAGS) -o ../xsched.trace $(OBJS) $(LIBS) X# clean: X rm -f *.o *~ X# main.o: main.c X cc $(CFLAGS) -c main.c active.o: ./../src/active.c X cc $(CFLAGS) -c ./../src/active.c assign_xy.o: ./../src/assign_xy.c X cc $(CFLAGS) -c ./../src/assign_xy.c atlevel.o: ./../src/atlevel.c X cc $(CFLAGS) -c ./../src/atlevel.c build_levels.o: ./../src/build_levels.c X cc $(CFLAGS) -c ./../src/build_levels.c color_stuff.o: color_stuff.c X cc $(CFLAGS) -c color_stuff.c drawing.o: ./../src/drawing.c X cc $(CFLAGS) -c ./../src/drawing.c draw_path.o: ./../src/draw_path.c X cc $(CFLAGS) -c ./../src/draw_path.c draw_level.o: ./../src/draw_level.c X cc $(CFLAGS) -c ./../src/draw_level.c draw_subtree.o: ./../src/draw_subtree.c X cc $(CFLAGS) -c ./../src/draw_subtree.c events.o: ./../src/events.c X cc $(CFLAGS) -c ./../src/events.c find_parents.o: ./../src/find_parents.c X cc $(CFLAGS) -c ./../src/find_parents.c get_path_len.o: ./../src/get_path_len.c X cc $(CFLAGS) -c ./../src/get_path_len.c legend.o: ./../src/legend.c X cc $(CFLAGS) -c ./../src/legend.c load.o: ./../src/load.c X cc $(CFLAGS) -c ./../src/load.c new_tree.o: ./../src/new_tree.c X cc $(CFLAGS) -c ./../src/new_tree.c open_tracefi.o: ./../src/open_tracefi.c X cc $(CFLAGS) -c ./../src/open_tracefi.c pathes.o: ./../src/pathes.c X cc $(CFLAGS) -c ./../src/pathes.c procs.o: procs.c X cc $(CFLAGS) -c procs.c rebuild.o: ./../src/rebuild.c X cc $(CFLAGS) -c ./../src/rebuild.c c_time.o: c_time.c X cc $(CFLAGS) -c c_time.c searches.o: ./../src/searches.c X cc $(CFLAGS) -c ./../src/searches.c Slider.o: Slider.c X cc $(CFLAGS) -c Slider.c wd_drawing.o: wd_drawing.c X cc $(CFLAGS) -c wd_drawing.c window_init.o: window_init.c X cc $(CFLAGS) -c window_init.c X# X#.c.o: X# cc $(CFLAGS) -c $*.c X# END_OF_FILE if test 2461 -ne `wc -c <'TRACE/X/makefile'`; then echo shar: \"'TRACE/X/makefile'\" unpacked with wrong size! fi # end of 'TRACE/X/makefile' fi if test -f 'TRACE/X/procs.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/procs.c'\" else echo shar: Extracting \"'TRACE/X/procs.c'\" \(10882 characters\) sed "s/^X//" >'TRACE/X/procs.c' <<'END_OF_FILE' X#include "sched.trace.h" X#include X Widget file_menu_popup = NULL; Widget dir_menu_popup = NULL; Widget menu_box, dir_menu_box; unsigned int DELAY = 0; X X void delay_change_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X DELAY = (500000 * (*(float*)call_data)); X} X X void load_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X open_tracefile(file_table[ft_index]); X} void go_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X char msg[50]; X if (file_loaded) X if (nodraw) X { X sprintf(msg, "Skipping forward to %d.",start_draw_mark); X display_message(msg); X } X else X { X display_message("Processing events."); X go = TRUE; X while (go) X { X proc_event(); X usleep(DELAY); X if (button_hit()) go = FALSE; X } X } X else X display_message("You have to select a file first."); X} void stop_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X /*printf("STOP\n");*/ X go = FALSE; X} void direction_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X if (file_loaded) X if (forward) X { X forward = FALSE; X set_label(direction_button, "Backward"); X/* X panel_set(directiontext, PANEL_LABEL_STRING, X "Direction : backward", X 0); X*/ X current_event = current_event->next_event; X } X else X { X forward = TRUE; X set_label(direction_button, "Forward "); X/* X panel_set(directiontext, PANEL_LABEL_STRING, X "Direction : forward", X 0); X*/ X current_event = current_event->previous_event; X } X else X display_message("You have to select a file first."); X} void step_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X if (file_loaded) X { X go = FALSE; X display_message("Stepping through one event."); X proc_event(); X } X else X display_message("You have to select a file first."); X} void full_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X size_factor = 1 + size_factor; X if ( size_factor > 2 ) size_factor = 1; X} void c_time_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X/* printf("C_TIME\n");*/ X/*boom*/ X if (file_loaded) { X c_time(w); X/*printf("C_TIME came back\n");*/ X } else X display_message("You have to select a file first."); X/**/ X} void name_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X/* X printf("NAME\n"); X if (file_loaded) X create_names_menu(event); X else X display_message("You have to select a file first."); X*/ X} void subtree_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X if (file_loaded) X { X if (CURRENT_NODE != -1) X { X ++DEPTH; X draw_subtree(); X } X } X else X display_message("You have to select a file first."); X} void redraw_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X if (file_loaded) X redraw_all(); X else X display_message("You have to select a file first."); X} void histogram_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X Arg args[4]; X void plot_active2(); X HISTOGRAM = !HISTOGRAM; X if (HISTOGRAM) X { X XtPopup(histogram_frame, NULL); X XtSetArg(args[0], XtNheight, (XtArgVal) 400); X XtSetArg(args[1], XtNwidth, (XtArgVal) 1000); X XtSetArg(args[2], XtNx, (XtArgVal) 200); X XtSetArg(args[3], XtNy, (XtArgVal) 200); X histogram_canvas = XtCreateManagedWidget("histogram_canvas", widgetClass, X histogram_vp, args, XtNumber(args)); X XtAddEventHandler(histogram_canvas, X ExposureMask, False, plot_active2, NULL); X pw2 = XtWindow(histogram_canvas); X plot_active2(); X } X else X { X XtPopdown(histogram_frame); X XtDestroyWidget(histogram_canvas); X } X/* X scrollbar_scroll_to(v_bar, 300, 0); X scrollbar_scroll_to(h_bar, 395, 0); X*/ X} void processor_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X show_processor = !show_processor; X if (show_processor) X { X XtPopup(processor_frame, NULL); X pw_processor = XtWindow(processor_canvas); X } X else X XtPopdown(processor_frame); X} void legend_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X show_legend = !show_legend; X if (show_legend) X { X XSetWindowAttributes win_atts; X XtPopup(legend_frame, NULL); X pw_legend = XtWindow(legend_canvas); X win_atts.backing_store = Always; X XChangeWindowAttributes(display, pw_legend, CWBackingStore, &win_atts); X XSetWindowBackground(display, pw_legend, my_color_map[BACKGROUND]); X legend(); X } X else X XtPopdown(legend_frame); X} void contrast_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X/* X printf("CONTRAST\n"); X if (pw->pw_pixrect->pr_depth == 1) X { X if (screen_toggle) X { X screen_toggle = FALSE; X pw_blackonwhite (pw, 0, 1); X } X else X { X screen_toggle = TRUE; X pw_whiteonblack (pw, 0, 1); X } X if (file_loaded) redraw_all(); X } X*/ X} void quit_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X exit(0); X} X button_hit() X X{ X XEvent event; X X if (XPending(display)== 0) X return (FALSE); X XNextEvent(display, &event); X X switch (event.type) { X case ButtonPress: X return (1); X break; X } /* switch */ X return (FALSE); X} X X/* void file_notify_proc(w, closure, call_data) X Widget w; X caddr_t closure; X caddr_t call_data; X{ X static char current_file[150]; X X if (++ft_index > max_file_index) X ft_index = 0; X strcpy(current_file, "Trace file: "); X strcpy(current_file + 12, file_table[ft_index]); X set_label(file_choice, current_file); X} X*/ void file_menu_callback(widget,closure,callData) X Widget widget; X caddr_t closure; X caddr_t callData; X{ X char current_file[100]; X X XUnmapWindow(display, XtWindow(file_menu_popup)); X XtDestroyWidget(file_menu_popup); X file_menu_popup = NULL; X X ft_index = closure; X X strcpy(current_file, "Trace file: "); X strcpy(current_file + 12, file_table[ft_index]); X set_label(file_choice, current_file); X X open_tracefile(file_table[ft_index]); X} void file_notify_proc(button) Widget button; X{ X int i, longest = 0, /* find how many file entries */ X n=0, X height; X static XtCallbackRec callbackList[] = { {file_menu_callback, NULL}, X {NULL, NULL} }; X static Arg box_arg[] = { {XtNvSpace, 0}, X {XtNhSpace, 0} }; X Arg args[4]; X static Arg pop_arg[] = { {XtNx, 450}, /* boom - we should really check the X current mouse position here */ X {XtNy, 100} }; X X XtSetArg(args[n], XtNfont, (XtArgVal) XLoadQueryFont(display, WHAT_FONT));n++; X XtSetArg(args[n], XtNcallback,(XtArgVal)callbackList);n++; X XtSetArg(args[n], XtNborderWidth, 0);n++; X X if (file_menu_popup != NULL) { X return; X printf("file_menu_popup != NULL\n"); X } X X file_menu_popup = XtCreatePopupShell("file list", transientShellWidgetClass, X button, pop_arg, 2); X X menu_box = XtCreateManagedWidget("menu_box", boxWidgetClass, X file_menu_popup, box_arg, 2); X X /* find length of table */ X for (i=0; file_table[i] != NULL; i++) { X callbackList[0].closure = i; X XtCreateManagedWidget(file_table[i], commandWidgetClass, X menu_box, args, n); X } X i++; /* for the pad structure */ X X XtRealizeWidget(file_menu_popup); X XMapWindow(display, XtWindow(file_menu_popup)); X X} X X void dir_menu_callback(widget,closure,callData) X Widget widget; X caddr_t closure; X caddr_t callData; X{ X X XUnmapWindow(display, XtWindow(dir_menu_popup)); X XtDestroyWidget(dir_menu_popup); X dir_menu_popup = NULL; X X chdir(directory_table[(int)closure]); X X load_tables(); X} void directory_notify_proc(button) Widget button; X{ X int i, longest = 0, /* find how many file entries */ X n=0, X height; X static XtCallbackRec callbackList[] = { {dir_menu_callback, NULL}, X {NULL, NULL} }; X static Arg box_arg[] = { {XtNvSpace, 0}, X {XtNhSpace, 0} }; X Arg args[4]; X static Arg pop_arg[] = { {XtNx, 350}, /* boom - we should really check the X current mouse position here */ X {XtNy, 100} }; X X XtSetArg(args[n], XtNfont, (XtArgVal) XLoadQueryFont(display, WHAT_FONT));n++; X XtSetArg(args[n], XtNcallback,(XtArgVal)callbackList);n++; X XtSetArg(args[n], XtNborderWidth, 0);n++; X X if (dir_menu_popup != NULL) { X return; X } X X dir_menu_popup = XtCreatePopupShell("dir list", transientShellWidgetClass, X button, pop_arg, 2); X X dir_menu_box = XtCreateManagedWidget("dir menu_box", boxWidgetClass, X dir_menu_popup, box_arg, 2); X X /* find length of table */ X for (i=0; directory_table[i] != NULL; i++) { X callbackList[0].closure = i; X XtCreateManagedWidget(directory_table[i], commandWidgetClass, X dir_menu_box, args, n); X } X i++; /* for the pad structure */ X X XtRealizeWidget(dir_menu_popup); X XMapWindow(display, XtWindow(dir_menu_popup)); X X} X X void handle_event(canvas, arg, event) Canvas canvas; XXEvent *event; caddr_t arg; X{ X int x, y; X char str[20]; X X x = ((XButtonPressedEvent *)event)->x; X y = ((XButtonPressedEvent *)event)->y; X switch (((XButtonPressedEvent *)event)->button) X { X case Button1 : X if ( (CURRENT_NODE = node_search(x,y)) != -1 ) X { X sprintf(str,"Current node is %d", X NODE[0][CURRENT_NODE][ID]); X display_node(str); X }; X break; X case Button2 : X if ( (CURRENT_NODE = node_search(x,y)) != -1 ) X { X sprintf(str,"Current node is %d", X NODE[0][CURRENT_NODE][ID]); X display_node(str); X }; X break; X case Button3 : X if ( (CURRENT_NODE = node_search(x,y)) != -1 ) X { X sprintf(str,"Current node is %d", X NODE[0][CURRENT_NODE][ID]); X display_node(str); X }; X/* X if (event_is_down(event)) prdata(); X*/ X break; X default : X break; X } X} END_OF_FILE if test 10882 -ne `wc -c <'TRACE/X/procs.c'`; then echo shar: \"'TRACE/X/procs.c'\" unpacked with wrong size! fi # end of 'TRACE/X/procs.c' fi if test -f 'TRACE/X/wd_drawing.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'TRACE/X/wd_drawing.c'\" else echo shar: Extracting \"'TRACE/X/wd_drawing.c'\" \(10594 characters\) sed "s/^X//" >'TRACE/X/wd_drawing.c' <<'END_OF_FILE' X/* This file contains the window dependent drawing routines for X11. X*/ X#include "sched.trace.h" X#include X Widget path_menu_popup = NULL, path_box; extern int path_number; int i, leaf_node; X/*struct path_node *path, *find_critical_path();*/ struct critical_path *cp_ptr, *temp_ptr; X X point(surface, x, y, color, xormode) Surface surface; int x, y, xormode; unsigned long color; X{ X if (color == 0) X XSetFunction(display, gc, GXclear); X else X XSetFunction(display, gc, GXcopy); X XSetForeground(display, gc, color); X XDrawPoint(display, surface, gc, x, y); X XFlush(display); X} X line(surface, x1, y1, x2, y2, color) Surface surface; int x1, y1, x2, y2; unsigned long color; X{ X if (color == 0) X XSetFunction(display, gc, GXclear); X else X XSetFunction(display, gc, GXcopy); X XSetForeground(display, gc, color); X XDrawLine(display, surface, gc, x1, y1, x2, y2); X XFlush(display); X} X fillcircle(surface, x, y, radius, color, xormode) Surface surface; int x,y, radius, color, xormode; X{ X if (color == 0) X XSetFunction(display, gc, GXclear); X else X XSetFunction(display, gc, GXcopy); X XSetForeground(display, gc, color); X XFillArc(display, surface, gc, x-radius, y-radius, 2*radius, 2*radius, X 0, 365 * 64); X XFlush(display); X} X X verline(surface, x, y, ydistance, color, xormode) Surface surface; int x, y, ydistance, xormode; unsigned long color; X{ X if (color == 0) X XSetFunction(display, gc, GXclear); X else X XSetFunction(display, gc, GXcopy); X XSetForeground(display, gc, color); X XDrawLine(display, surface, gc, x, y, x, y+ydistance); X XFlush(display); X} X horline(surface, x, y, xdistance, color, xormode) Surface surface; int x, y, xdistance, xormode; unsigned long color; X{ X if (color == 0) X XSetFunction(display, gc, GXclear); X else X XSetFunction(display, gc, GXcopy); X XSetForeground(display, gc, color); X XDrawLine(display, surface, gc, x, y, x+xdistance, y); X XFlush(display); X} X text(surface, x, y, string) Surface surface; int x, y; char *string; X{ X XSetFunction(display, gc, GXcopy); X XSetForeground(display, gc, my_color_map[BLACK]); X XDrawString(display, surface, gc, x, y, string, strlen(string)); X XFlush(display); X} X put_char(surface, x, y, c) Surface surface; int x, y; char c; X{ X XSetFunction(display, gc, GXcopy); X XSetForeground(display, gc, my_color_map[BLACK]); X XDrawString(display, surface, gc, x, y, &c, 1); X XFlush(display); X} X erase(surface, x, y, w, h) Surface surface; int x, y, w, h; X{ X XClearArea(display, surface, x, y, w, h, False); X} X clearscreen(surface, x, y) Surface surface; int x, y; X{ X XClearArea(display, surface, 0, 0, x, y, False); X} X set_directory_menu() X{ X char current_file[100]; X X strcpy(current_file, "Directory: "); X getwd(current_file + 11); X set_label(directory_choice, current_file); X} X set_file_menu() X{ X static char current_file[150]; X ft_index = 0; X if (file_table[ft_index] != NULL) X { X strcpy(current_file, "Trace file: "); X strcpy(current_file + 12, file_table[ft_index]); X set_label(file_choice, current_file); X display_message("Select file & click load."); X } X else { X set_label(file_choice, "Trace file: "); X display_message("No trace files in the current directory."); X } X} X set_label(widget, string) Widget widget; char *string; X{ X Arg args[2]; X XEvent event; X X if (widget == NULL) X return; X XtUnmanageChild(widget); X args[0].name = XtNlabel; X args[0].value = (XtArgVal) string; X args[1].name = NULL; X args[1].value = (XtArgVal) NULL; X/* X args[1].name = XtNwidth; X args[1].value = (XtArgVal) get_text_width(string); X*/ X XtSetValues(widget, args, XtNumber(args)); X /*printf("In set_label: string = %s\n.", string);*/ X XtManageChild(widget); X XtNextEvent(&event); X XtDispatchEvent(&event); X XFlush(event.xany.display); X/* X XtNextEvent(&event); X XtDispatchEvent(&event); X XFlush(event.xany.display); X*/ X} X display_node(text) X char *text; X{ X/* X panel_set(nodetext, PANEL_LABEL_STRING, text, 0); X*/ X} X display_path(text) X char *text; X{ X/* X panel_set(pathtext, PANEL_LABEL_STRING, text, 0); X*/ X} X display_message(text) X char *text; X{ X set_label(msgtext, text); X} X set_event_counter(max_count) int max_count; X{ X/* X panel_set(count_slider, PANEL_MAX_VALUE, max_count, PANEL_VALUE, 0, 0); X*/ X} X update_event_counter(time) float time; X{ X Arg args[1]; X#ifndef TITAN X/* X XtSetArg(args[0], XtNsliderValue, (XtArgVal) ROUND(time)); X XtSetValues(count_slider, args, XtNumber(args)); X*/ XXtScrollBarSetThumb(count_slider, 0.0, time/100); X#endif X} X update_active_counter(count) int count; X{ X Arg args[1]; X char how_many[20]; X#ifndef TITAN X if (count > 9) X sprintf(how_many, " %d", count); X else X sprintf(how_many, " %d ", count); X XtScrollBarSetThumb(cw_slider, 0.0, (count*1.0)/10); X set_label(cw_slider_num_label, how_many); X#endif X} X reset_values() X{ X Arg args[1]; X set_label(direction_button, "Forward "); X#ifndef TITAN X XtScrollBarSetThumb(count_slider, 0.0, 0.0); X XtScrollBarSetThumb(cw_slider, 0.0, 0.0); X set_label(cw_slider_num_label, " 0 "); X#endif X} X get_text_width(string) char *string; X{ X XFontStruct *font_info; X X font_info = XQueryFont(display, XGContextFromGC(gc)); X return(XTextWidth(font_info, string, strlen(string))); X} X get_text_height() X{ X XFontStruct *font_info; X X font_info = XQueryFont(display, XGContextFromGC(gc)); X return(font_info->ascent + font_info->descent); X} X X void create_path_menu_callback(widget,closure,callData) X Widget widget; X caddr_t closure; X caddr_t callData; X{ X struct path_node *path; X int i; X X XUnmapWindow(display, XtWindow(path_menu_popup)); X XtDestroyWidget(path_menu_popup); X path_menu_popup = NULL; X X path_number = closure; X X if (path_number) X { X int p[MAXNODES]; X cp_ptr = c_path; X for (i = 1; i !=