radcheckdef.h

Go to the documentation of this file.
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

SourceForge.net Logo
Project space on SourceForge.net