changeset 233:a0ac58d8201c Common_Ancestor

cleaning -- more general rearrangement, moving things and adding comments
author Some Random Person <seanhalle@yahoo.com>
date Fri, 16 Mar 2012 09:39:53 -0700
parents 421bde2a07d7
children 0ee1a3c8972d
files AnimationMaster.c Hardware_Dependent/VMS__HW_measurement.h Hardware_Dependent/VMS__primitives_asm.s VMS.h VMS__PI.c VMS__WL.c VMS__int.c VMS__startup_and_shutdown.c VMS_primitive_data_types.h
diffstat 9 files changed, 155 insertions(+), 108 deletions(-) [+]
line diff
     1.1 --- a/AnimationMaster.c	Thu Mar 15 20:47:54 2012 -0700
     1.2 +++ b/AnimationMaster.c	Fri Mar 16 09:39:53 2012 -0700
     1.3 @@ -183,7 +183,7 @@
     1.4              //put the chosen slave into slot, and adjust flags and state
     1.5           if( assignedSlaveVP != NULL )
     1.6            { currSlot->slaveAssignedToSlot = assignedSlaveVP;
     1.7 -            assignedSlaveVP->schedSlot       = currSlot;
     1.8 +            assignedSlaveVP->schedSlotAssignedTo       = currSlot;
     1.9              currSlot->needsSlaveAssigned  = FALSE;
    1.10              numSlotsFilled               += 1;
    1.11            }
     2.1 --- a/Hardware_Dependent/VMS__HW_measurement.h	Thu Mar 15 20:47:54 2012 -0700
     2.2 +++ b/Hardware_Dependent/VMS__HW_measurement.h	Fri Mar 16 09:39:53 2012 -0700
     2.3 @@ -10,6 +10,16 @@
     2.4  #define	_VMS__HW_MEASUREMENT_H
     2.5  #define _GNU_SOURCE
     2.6  
     2.7 +
     2.8 +//===================  Macros to Capture Measurements  ======================
     2.9 +
    2.10 +typedef union
    2.11 + { uint32 lowHigh[2];
    2.12 +   uint64 longVal;
    2.13 + }
    2.14 +TSCountLowHigh;
    2.15 +
    2.16 +
    2.17  //===================  Macros to Capture Measurements  ======================
    2.18  //
    2.19  //===== RDTSC wrapper ===== 
    2.20 @@ -40,6 +50,9 @@
    2.21     /* clobber */ : "%eax", "%edx"         \
    2.22                  );
    2.23  
    2.24 +inline TSCount getTSCount();
    2.25 +
    2.26 +
    2.27     //For code that calculates normalization-offset between TSC counts of
    2.28     // different cores.
    2.29  //#define NUM_TSC_ROUND_TRIPS 10
     3.1 --- a/Hardware_Dependent/VMS__primitives_asm.s	Thu Mar 15 20:47:54 2012 -0700
     3.2 +++ b/Hardware_Dependent/VMS__primitives_asm.s	Fri Mar 16 09:39:53 2012 -0700
     3.3 @@ -7,7 +7,7 @@
     3.4  //Arguments: Pointer to variable holding address
     3.5  .globl recordCoreCtlrReturnLabelAddr
     3.6  recordCoreCtlrReturnLabelAddr:
     3.7 -    movq    $coreCtlrReturn, %rcx   #load label address
     3.8 +    movq    $coreCtlrReturn, %rcx  #load label address
     3.9      movq    %rcx, (%rdi)           #save address to pointer
    3.10      ret
    3.11  
    3.12 @@ -24,24 +24,24 @@
    3.13  //Switches form CoreCtlr to either a normal Slv VP or the Master VP
    3.14  //switch to VP's stack and frame ptr then jump to VP's next-instr-ptr
    3.15  /* SlaveVP  offsets:
    3.16 - * 0x10  stackPtr
    3.17 - * 0x18 framePtr
    3.18 - * 0x20 resumeInstrPtr
    3.19 - * 0x30 coreCtlrFramePtr
    3.20 - * 0x38 coreCtlrStackPtr
    3.21 + * 0x00  stackPtr
    3.22 + * 0x08 framePtr
    3.23 + * 0x10 resumeInstrPtr
    3.24 + * 0x18 coreCtlrFramePtr
    3.25 + * 0x20 coreCtlrStackPtr
    3.26   *
    3.27   * _VMSMasterEnv  offsets:
    3.28 - * 0x0 coreCtlrReturnPt
    3.29 - * 0x8 masterLock
    3.30 + * 0x00 coreCtlrReturnPt
    3.31 + * 0x08 masterLock
    3.32   */
    3.33  .globl switchToSlv
    3.34  switchToSlv:
    3.35      #SlaveVP in %rdi
    3.36 -    movq    %rsp      , 0x38(%rdi)   #save core ctlr stack pointer 
    3.37 -    movq    %rbp      , 0x30(%rdi)   #save core ctlr frame pointer
    3.38 -    movq    0x10(%rdi), %rsp         #restore stack pointer
    3.39 -    movq    0x18(%rdi), %rbp         #restore frame pointer
    3.40 -    movq    0x20(%rdi), %rax         #get jmp pointer
    3.41 +    movq    %rsp      , 0x20(%rdi)   #save core ctlr stack pointer 
    3.42 +    movq    %rbp      , 0x18(%rdi)   #save core ctlr frame pointer
    3.43 +    movq    0x00(%rdi), %rsp         #restore stack pointer
    3.44 +    movq    0x08(%rdi), %rbp         #restore frame pointer
    3.45 +    movq    0x10(%rdi), %rax         #get jmp pointer
    3.46      jmp     *%rax                    #jmp to Slv
    3.47  coreCtlrReturn:
    3.48      ret
    3.49 @@ -49,24 +49,24 @@
    3.50      
    3.51  //switches to core controller. saves return address
    3.52  /* SlaveVP  offsets:
    3.53 - * 0x10  stackPtr
    3.54 - * 0x18 framePtr
    3.55 - * 0x20 resumeInstrPtr
    3.56 - * 0x30 coreCtlrFramePtr
    3.57 - * 0x38 coreCtlrStackPtr
    3.58 + * 0x00  stackPtr
    3.59 + * 0x08 framePtr
    3.60 + * 0x10 resumeInstrPtr
    3.61 + * 0x18 coreCtlrFramePtr
    3.62 + * 0x20 coreCtlrStackPtr
    3.63   *
    3.64   * _VMSMasterEnv  offsets:
    3.65 - * 0x0 coreCtlrReturnPt
    3.66 - * 0x8 masterLock
    3.67 + * 0x00 coreCtlrReturnPt
    3.68 + * 0x08 masterLock
    3.69   */
    3.70  .globl switchToCoreCtlr
    3.71  switchToCoreCtlr:
    3.72      #SlaveVP in %rdi
    3.73 -    movq    $SlvReturn, 0x20(%rdi)   #store return address
    3.74 -    movq    %rsp      , 0x10(%rdi)   #save stack pointer 
    3.75 -    movq    %rbp      , 0x18(%rdi)   #save frame pointer
    3.76 -    movq    0x38(%rdi), %rsp         #restore stack pointer
    3.77 -    movq    0x30(%rdi), %rbp         #restore frame pointer
    3.78 +    movq    $SlvReturn, 0x10(%rdi)   #store return address
    3.79 +    movq    %rsp      , 0x00(%rdi)   #save stack pointer 
    3.80 +    movq    %rbp      , 0x08(%rdi)   #save frame pointer
    3.81 +    movq    0x20(%rdi), %rsp         #restore stack pointer
    3.82 +    movq    0x18(%rdi), %rbp         #restore frame pointer
    3.83      movq    $_VMSMasterEnv, %rcx
    3.84      movq        (%rcx), %rcx         #_VMSMasterEnv is pointer to struct
    3.85      movq    0x00(%rcx), %rax         #get CoreCtlrStartPt
    3.86 @@ -79,24 +79,24 @@
    3.87  //switches to core controller from master. saves return address
    3.88  //Releases masterLock so the next AnimationMaster can be executed
    3.89  /* SlaveVP  offsets:
    3.90 - * 0x10  stackPtr
    3.91 - * 0x18 framePtr
    3.92 - * 0x20 resumeInstrPtr
    3.93 - * 0x30 coreCtlrFramePtr
    3.94 - * 0x38 coreCtlrStackPtr
    3.95 + * 0x00  stackPtr
    3.96 + * 0x08 framePtr
    3.97 + * 0x10 resumeInstrPtr
    3.98 + * 0x18 coreCtlrFramePtr
    3.99 + * 0x20 coreCtlrStackPtr
   3.100   *
   3.101   * _VMSMasterEnv  offsets:
   3.102 - * 0x0 coreCtlrReturnPt
   3.103 - * 0x8 masterLock
   3.104 + * 0x00 coreCtlrReturnPt
   3.105 + * 0x08 masterLock
   3.106   */
   3.107  .globl masterSwitchToCoreCtlr
   3.108  masterSwitchToCoreCtlr:
   3.109      #SlaveVP in %rdi
   3.110 -    movq    $MasterReturn, 0x20(%rdi)   #store return address
   3.111 -    movq    %rsp      , 0x10(%rdi)   #save stack pointer 
   3.112 -    movq    %rbp      , 0x18(%rdi)   #save frame pointer
   3.113 -    movq    0x38(%rdi), %rsp         #restore stack pointer
   3.114 -    movq    0x30(%rdi), %rbp         #restore frame pointer
   3.115 +    movq    $MasterReturn, 0x10(%rdi)   #store return address
   3.116 +    movq    %rsp      , 0x00(%rdi)   #save stack pointer 
   3.117 +    movq    %rbp      , 0x08(%rdi)   #save frame pointer
   3.118 +    movq    0x20(%rdi), %rsp         #restore stack pointer
   3.119 +    movq    0x18(%rdi), %rbp         #restore frame pointer
   3.120      movq    $_VMSMasterEnv, %rcx
   3.121      movq        (%rcx), %rcx         #_VMSMasterEnv is pointer to struct
   3.122      movq    0x00(%rcx), %rax         #get CoreCtlr return pt
   3.123 @@ -115,20 +115,20 @@
   3.124   *Do not save registers of Slv because this function will never return
   3.125   *
   3.126   * SlaveVP  offsets:
   3.127 - * 0x10  stackPtr
   3.128 - * 0x18 framePtr
   3.129 - * 0x20 resumeInstrPtr
   3.130 - * 0x30 coreCtlrFramePtr
   3.131 - * 0x38 coreCtlrStackPtr
   3.132 + * 0x00  stackPtr
   3.133 + * 0x08 framePtr
   3.134 + * 0x10 resumeInstrPtr
   3.135 + * 0x18 coreCtlrFramePtr
   3.136 + * 0x20 coreCtlrStackPtr
   3.137   *
   3.138   * _VMSMasterEnv  offsets:
   3.139 - * 0x0 coreCtlrReturnPt
   3.140 - * 0x8 masterLock
   3.141 + * 0x00 coreCtlrReturnPt
   3.142 + * 0x08 masterLock
   3.143   */
   3.144  .globl asmTerminateCoreCtlr
   3.145  asmTerminateCoreCtlr:                #SlaveVP ptr is in %rdi
   3.146 -    movq    0x38(%rdi), %rsp         #restore stack pointer
   3.147 -    movq    0x30(%rdi), %rbp         #restore frame pointer
   3.148 +    movq    0x20(%rdi), %rsp         #restore stack pointer
   3.149 +    movq    0x18(%rdi), %rbp         #restore frame pointer
   3.150      movq    $terminateCoreCtlr, %rax
   3.151      jmp     *%rax                    #jmp to fn that ends the pthread
   3.152  
   3.153 @@ -140,8 +140,8 @@
   3.154  .globl asmTerminateCoreCtlrSeq
   3.155  asmTerminateCoreCtlrSeq:
   3.156      #SlaveVP in %rdi
   3.157 -    movq    0x38(%rdi), %rsp         #restore stack pointer
   3.158 -    movq    0x30(%rdi), %rbp         #restore frame pointer
   3.159 +    movq    0x20(%rdi), %rsp         #restore stack pointer
   3.160 +    movq    0x18(%rdi), %rbp         #restore frame pointer
   3.161      #argument is in %rdi
   3.162      call    VMS_int__dissipate_slaveVP
   3.163      movq    %rbp      , %rsp        #goto the coreCtlrs stack
   3.164 @@ -153,8 +153,8 @@
   3.165  // by the parameter passed in via rdi.  Return addr is at 0x8(%rbp) for 64bit
   3.166  .globl VMS_int__save_return_into_ptd_to_loc_then_do_ret
   3.167  VMS_int__save_return_into_ptd_to_loc_then_do_ret:
   3.168 -    movq 0x8(%rbp),     %rax  #get ret address, rbp is the same as in the calling function
   3.169 -    movq     %rax,     (%rdi) #write ret addr into addr passed as param field
   3.170 +    movq 0x08(%rbp),   %rax  #get ret address, rbp is the same as in the calling function
   3.171 +    movq      %rax,   (%rdi) #write ret addr into addr passed as param field
   3.172      ret
   3.173  
   3.174  
   3.175 @@ -162,7 +162,7 @@
   3.176  // pointed to by the parameter, then returns. Stack's return addr is at 0x8(%rbp)
   3.177  .globl VMS_int__return_to_addr_in_ptd_to_loc
   3.178  VMS_int__return_to_addr_in_ptd_to_loc:
   3.179 -    movq    (%rdi),    %rax  #get return addr from addr passed as param
   3.180 -    movq     %rax, 0x8(%rbp) #write return addr to the stack of the caller
   3.181 +    movq   (%rdi),     %rax  #get return addr from addr passed as param
   3.182 +    movq    %rax, 0x08(%rbp) #write return addr to the stack of the caller
   3.183      ret
   3.184  
     4.1 --- a/VMS.h	Thu Mar 15 20:47:54 2012 -0700
     4.2 +++ b/VMS.h	Fri Mar 16 09:39:53 2012 -0700
     4.3 @@ -29,12 +29,7 @@
     4.4  
     4.5  //================================ Typedefs =================================
     4.6  //
     4.7 -typedef unsigned long long TSCount;
     4.8 -typedef union
     4.9 - { uint32 lowHigh[2];
    4.10 -   uint64 longVal;
    4.11 - }
    4.12 -TSCountLowHigh;
    4.13 +typedef unsigned long long    TSCount;
    4.14  
    4.15  typedef struct _SchedSlot     SchedSlot;
    4.16  typedef struct _VMSReqst      VMSReqst;
    4.17 @@ -54,9 +49,6 @@
    4.18  #include "Hardware_Dependent/VMS__HW_measurement.h"
    4.19  #include "Hardware_Dependent/VMS__primitives.h"
    4.20  
    4.21 -//============================= Statistics ==================================
    4.22 -
    4.23 -inline TSCount getTSCount();
    4.24  
    4.25  //============= Request Related ===========
    4.26  //
    4.27 @@ -113,26 +105,29 @@
    4.28   };
    4.29  //SchedSlot
    4.30  
    4.31 -/*WARNING: re-arranging this data structure could cause Slv switching
    4.32 - *         assembly code to fail -- hard-codes offsets of fields
    4.33 +/*This structure embodies the state of a slaveVP.  It is reused for masterVP
    4.34 + * and shutdownVPs.
    4.35   */
    4.36  struct _SlaveVP
    4.37 - { int         slaveID;  //each slave given a unique ID
    4.38 -   int         coreAnimatedBy;
    4.39 -   void       *startOfStack;
    4.40 -   void       *stackPtr;
    4.41 -   void       *framePtr;
    4.42 -   void       *resumeInstrPtr;
    4.43 -   
    4.44 -   void       *coreCtlrStartPt;  //allows proto-runtime to be linked later
    4.45 + {    //The offsets of these fields are hard-coded into assembly
    4.46 +   void       *stackPtr;         //save the core's stack ptr when suspend
    4.47 +   void       *framePtr;         //save core's frame ptr when suspend
    4.48 +   void       *resumeInstrPtr;   //save core's program-counter when suspend
    4.49     void       *coreCtlrFramePtr; //restore before jmp back to core controller
    4.50     void       *coreCtlrStackPtr; //restore before jmp back to core controller
    4.51 +   
    4.52 +      //============ below this, no fields are used in asm =============
    4.53 +   int         slaveID;          //each slave given a globally unique ID
    4.54 +   int         coreAnimatedBy;
    4.55 +   void       *startOfStack;  //used to free, and to point slave to Fn
    4.56 +   
    4.57 +      //for comm -- between master and coreCtlr & btwn wrapper lib and plugin
    4.58 +   SchedSlot  *schedSlotAssignedTo;
    4.59 +   VMSReqst   *requests;      //wrapper lib puts in requests, plugin takes out
    4.60 +   void       *dataRetFromReq;//Return vals from plugin to Wrapper Lib
    4.61  
    4.62 -   SchedSlot  *schedSlot;
    4.63 -   VMSReqst   *requests;
    4.64 -
    4.65 -   void       *semanticData; //this is live for the life of Slv
    4.66 -   void       *dataRetFromReq;//Used to return vals from plugin to Wrapper Lib
    4.67 +      //Slave used as carrier for data
    4.68 +   void       *semanticData;  //Lang saves lang-specific things in slave here
    4.69  
    4.70        //=========== MEASUREMENT STUFF ==========
    4.71         MEAS__Insert_Meas_Fields_into_Slave;
    4.72 @@ -142,14 +137,15 @@
    4.73   };
    4.74  //SlaveVP
    4.75  
    4.76 -/*The one and only global variable, holds many odds and ends
    4.77 + 
    4.78 +/* The one and only global variable, holds many odds and ends
    4.79   */
    4.80  typedef struct
    4.81   {    //The offsets of these fields are hard-coded into assembly
    4.82     void            *coreCtlrReturnPt;    //offset of field used in asm
    4.83     int32            masterLock __align_to_cacheline__;   //used in asm
    4.84     
    4.85 -      //============ below this, no asm uses the field offsets =============
    4.86 +      //============ below this, no fields are used in asm =============
    4.87  
    4.88        //Basic VMS infrastructure
    4.89     SlaveVP        **masterVPs;
    4.90 @@ -214,6 +210,7 @@
    4.91  
    4.92  volatile MasterEnv      *_VMSMasterEnv __align_to_cacheline__;
    4.93  
    4.94 +   //these are global, but only used for startup and shutdown
    4.95  pthread_t       coreCtlrThdHandles[ NUM_CORES ]; //pthread's virt-procr state
    4.96  ThdParams      *coreCtlrThdParams [ NUM_CORES ];
    4.97  
    4.98 @@ -221,16 +218,28 @@
    4.99  pthread_cond_t  suspendCond;
   4.100  
   4.101  //=========================  Function Prototypes  ===========================
   4.102 -
   4.103 -/* MEANING OF   WL  PI  SS  int
   4.104 +/* MEANING OF   WL  PI  SS  int VMSOS
   4.105   * These indicate which places the function is safe to use.  They stand for:
   4.106 - * WL: Wrapper Library
   4.107 - * PI: Plugin 
   4.108 - * SS: Startup and Shutdown
   4.109 - * int: internal to the VMS implementation
   4.110 + * 
   4.111 + * WL   Wrapper Library -- wrapper lib code should only use these
   4.112 + * PI   Plugin          -- plugin code should only use these
   4.113 + * SS   Startup and Shutdown -- designates these relate to startup & shutdown
   4.114 + * int  internal to VMS -- should not be used in wrapper lib or plugin
   4.115 + * VMSOS means "OS functions for applications to use"
   4.116 + * 
   4.117 + * VMS_int__ functions touch internal VMS data structs and are only safe
   4.118 + *  to be used inside the master lock.  However, occasionally, they appear
   4.119 + * in wrapper-lib or plugin code.  In those cases, very careful analysis
   4.120 + * has been done to be sure no concurrency issues could arise.
   4.121 + * 
   4.122 + * VMS_WL__ functions are all safe for use outside the master lock.
   4.123 + * 
   4.124 + * VMSOS are only safe for applications to use -- they're like a second
   4.125 + * language mixed in -- but they can't be used inside plugin code, and
   4.126 + * aren't meant for use in wrapper libraries, because they are themselves
   4.127 + * wrapper-library calls!
   4.128   */
   4.129 -
   4.130 -//========== Setup and shutdown ==========
   4.131 +//========== Startup and shutdown ==========
   4.132  void
   4.133  VMS_SS__init();
   4.134  
     5.1 --- a/VMS__PI.c	Thu Mar 15 20:47:54 2012 -0700
     5.2 +++ b/VMS__PI.c	Fri Mar 16 09:39:53 2012 -0700
     5.3 @@ -14,6 +14,15 @@
     5.4  #include "VMS.h"
     5.5  
     5.6  
     5.7 +/* MEANING OF   WL  PI  SS  int
     5.8 + * These indicate which places the function is safe to use.  They stand for:
     5.9 + * WL: Wrapper Library
    5.10 + * PI: Plugin 
    5.11 + * SS: Startup and Shutdown
    5.12 + * int: internal to the VMS implementation
    5.13 + */
    5.14 +
    5.15 +
    5.16  /*
    5.17   */
    5.18  VMSReqst *
     6.1 --- a/VMS__WL.c	Thu Mar 15 20:47:54 2012 -0700
     6.2 +++ b/VMS__WL.c	Fri Mar 16 09:39:53 2012 -0700
     6.3 @@ -14,6 +14,15 @@
     6.4  #include "VMS.h"
     6.5  
     6.6  
     6.7 +/* MEANING OF   WL  PI  SS  int
     6.8 + * These indicate which places the function is safe to use.  They stand for:
     6.9 + * WL: Wrapper Library
    6.10 + * PI: Plugin 
    6.11 + * SS: Startup and Shutdown
    6.12 + * int: internal to the VMS implementation
    6.13 + */
    6.14 +
    6.15 +
    6.16  
    6.17  /*For this implementation of VMS, it may not make much sense to have the
    6.18   * system of requests for creating a new processor done this way.. but over
     7.1 --- a/VMS__int.c	Thu Mar 15 20:47:54 2012 -0700
     7.2 +++ b/VMS__int.c	Fri Mar 16 09:39:53 2012 -0700
     7.3 @@ -14,6 +14,15 @@
     7.4  #include "VMS.h"
     7.5  
     7.6  
     7.7 +/* MEANING OF   WL  PI  SS  int
     7.8 + * These indicate which places the function is safe to use.  They stand for:
     7.9 + * WL: Wrapper Library
    7.10 + * PI: Plugin 
    7.11 + * SS: Startup and Shutdown
    7.12 + * int: internal to the VMS implementation
    7.13 + */
    7.14 +
    7.15 +
    7.16  inline SlaveVP *
    7.17  VMS_int__create_slaveVP( TopLevelFnPtr fnPtr, void *dataParam )
    7.18   { SlaveVP *newSlv;
    7.19 @@ -70,7 +79,7 @@
    7.20     //animatingSlv->resumeInstrPtr = &&ResumePt;
    7.21  
    7.22        //return ownership of the Slv and sched slot to Master virt pr
    7.23 -   animatingSlv->schedSlot->workIsDone = TRUE;
    7.24 +   animatingSlv->schedSlotAssignedTo->workIsDone = TRUE;
    7.25  
    7.26           MEAS__Capture_Pre_Susp_Point;
    7.27     switchToCoreCtlr(animatingSlv);
    7.28 @@ -165,7 +174,7 @@
    7.29     newSlv->startOfStack = stackLocs;
    7.30     newSlv->slaveID      = _VMSMasterEnv->numSlavesCreated++;
    7.31     newSlv->requests     = NULL;
    7.32 -   newSlv->schedSlot    = NULL;
    7.33 +   newSlv->schedSlotAssignedTo    = NULL;
    7.34  
    7.35     VMS_int__point_slaveVP_to_Fn( newSlv, fnPtr, dataParam );
    7.36             
     8.1 --- a/VMS__startup_and_shutdown.c	Thu Mar 15 20:47:54 2012 -0700
     8.2 +++ b/VMS__startup_and_shutdown.c	Fri Mar 16 09:39:53 2012 -0700
     8.3 @@ -17,6 +17,16 @@
     8.4  
     8.5  #define thdAttrs NULL
     8.6  
     8.7 +
     8.8 +/* MEANING OF   WL  PI  SS  int
     8.9 + * These indicate which places the function is safe to use.  They stand for:
    8.10 + * WL: Wrapper Library
    8.11 + * PI: Plugin 
    8.12 + * SS: Startup and Shutdown
    8.13 + * int: internal to the VMS implementation
    8.14 + */
    8.15 +
    8.16 +
    8.17  //===========================================================================
    8.18  SchedSlot **
    8.19  create_sched_slots();
    8.20 @@ -486,7 +496,7 @@
    8.21        schedSlots[0]->slaveAssignedToSlot = shutDownSlv;
    8.22        schedSlots[0]->needsSlaveAssigned = FALSE;
    8.23        shutDownSlv->coreAnimatedBy = coreIdx;
    8.24 -      shutDownSlv->schedSlot = schedSlots[ 0 ];
    8.25 +      shutDownSlv->schedSlotAssignedTo = schedSlots[ 0 ];
    8.26      }
    8.27   }
    8.28  
     9.1 --- a/VMS_primitive_data_types.h	Thu Mar 15 20:47:54 2012 -0700
     9.2 +++ b/VMS_primitive_data_types.h	Fri Mar 16 09:39:53 2012 -0700
     9.3 @@ -13,25 +13,13 @@
     9.4  
     9.5  /*For portability, need primitive data types that have a well defined
     9.6   * size, and well-defined layout into bytes
     9.7 - *To do this, provide BLIS standard aliases for all primitive data types
     9.8 - *These aliases must be used in all BLIS functions instead of the ANSI types
     9.9 + *To do this, provide standard aliases for all primitive data types
    9.10 + *These aliases must be used in all functions instead of the ANSI types
    9.11   *
    9.12 - *These definitions will be replaced inside each specialization module
    9.13 - * according to the compiler used in that module and the hardware being
    9.14 - * specialized to.
    9.15 + *When VMS is used together with BLIS, these definitions will be replaced
    9.16 + * inside each specialization module according to the compiler used in
    9.17 + * that module and the hardware being specialized to.
    9.18   */
    9.19 -/*
    9.20 -#define    int8  char
    9.21 -#define   uint8  char
    9.22 -#define    int16 short
    9.23 -#define   uint16 unsigned short
    9.24 -#define    int32 int
    9.25 -#define   uint32 unsigned int
    9.26 -#define    int64 long long
    9.27 -#define   uint64 unsigned long long
    9.28 -#define  float32 float
    9.29 -#define  float64 double
    9.30 -*/
    9.31  typedef char               bool8;
    9.32  typedef char               int8;
    9.33  typedef char               uint8;
    9.34 @@ -44,7 +32,7 @@
    9.35  typedef unsigned long long uint64;
    9.36  typedef float              float32;
    9.37  typedef double             float64;
    9.38 -//typedef double double      float128;
    9.39 +//typedef double double      float128;  //GCC doesn't like this
    9.40  #define float128 double double
    9.41  
    9.42  #define TRUE  1