00001 // Version X-5 00002 // 00003 // radcheckdef.h 00004 // This file provides definitions that are used in ptecheck.c and 00005 // any application program that uses the mmg$rad* routines in it. 00006 // 00007 // The structure ASTARG used to pass a whole bunch of arguments among 00008 // the AST routines that do the work of checking each process for which 00009 // RADs it is using. 00010 00011 // Revision History 00012 // 00013 // X-5 WBF Burns Fisher 10-Nov-2000 00014 // Update with new fields to get global memory info 00015 // 00016 // X-4 WBF Burns Fisher 04-May-2000 00017 // Update with new fields to get shared memory info 00018 // 00019 // X-3 WBF Burns Fisher 17-Jan-2000 00020 // Update with new fields to get home RAD info, and to make 00021 // the system more easily upgradable 00022 // 00023 // X-2 WBF 00024 // 00025 // X-1 WBF Burns Fisher 00026 // Original version 00027 // 00028 00029 #define RADCOUNT_MAJOR_VERSION 2 00030 #define RADCOUNT_MINOR_VERSION 3 00031 #define PROGRAM_MAX_RAD_COUNT 32 00032 00033 typedef struct _astarg 00034 { 00035 int minor,major; // Major and Minor versions of this structure 00036 int status; // Status return to original process 00037 PCB *originalPCB; // PCB of the process that will be notified when we are done 00038 struct _astarg *localArg; // Pointer (in address space of original process) to where we return the info 00039 int allProcessFlag; // If set, check all processes 00040 int startingImageCount; // The image count in the phd of the original process 00041 int processCount; // Place to accumulate how many processes we have examined 00042 int counterArraySize; // Size of both poolRadCount and localRadCount (in longwords) 00043 unsigned int pageTypes; // Mask of what types of pages to look at (defined below) 00044 int radCountArray[PROGRAM_MAX_RAD_COUNT]; 00045 // Where the actual rad counters are kept 00046 int homeRadCountArray[PROGRAM_MAX_RAD_COUNT]; 00047 // Where we count the number of processes that have each RAD as a home 00048 int sharedRadCountArray[PROGRAM_MAX_RAD_COUNT]; 00049 int globalRadCountArray[PROGRAM_MAX_RAD_COUNT]; 00050 int lastPID; 00051 00052 // Where we count the number of pages that are in shared memory for a particular RAD 00053 } ASTARG; 00054 00055 // Other values that can be specified for the PID 00056 #define CURRENT_PROCESS 0 00057 #define ALL_PROCESSES -1 00058 00059 // Mask bits that can be set in pageTypes 00060 #define S0_MASK 1 00061 #define S2_MASK 2 00062 #define P0_MASK 4 00063 #define P1_MASK 8 00064 #define P2_MASK 0x10 00065 #define SHARED_MEMORY_MASK 0x20 00066 #define INSTANCE_PRIVATE_MASK 0x40 00067 #define GLOBALSEC_MASK 0x80