/** Build the pseudo monitors used to map the prolog data into counters. */
  protected void buildPseudoMonitors(Map<String, Monitor> map) {
    Monitor monitor = null;
    String name = null;
    IntBuffer ib = null;

    name = PerfDataBufferPrologue.PERFDATA_MAJOR_NAME;
    ib = prologue.majorVersionBuffer();
    monitor = new PerfIntegerMonitor(name, Units.NONE, Variability.CONSTANT, false, ib);
    map.put(name, monitor);

    name = PerfDataBufferPrologue.PERFDATA_MINOR_NAME;
    ib = prologue.minorVersionBuffer();
    monitor = new PerfIntegerMonitor(name, Units.NONE, Variability.CONSTANT, false, ib);
    map.put(name, monitor);

    name = PerfDataBufferPrologue.PERFDATA_BUFFER_SIZE_NAME;
    ib = prologue.sizeBuffer();
    monitor = new PerfIntegerMonitor(name, Units.BYTES, Variability.MONOTONIC, false, ib);
    map.put(name, monitor);

    name = PerfDataBufferPrologue.PERFDATA_BUFFER_USED_NAME;
    ib = prologue.usedBuffer();
    monitor = new PerfIntegerMonitor(name, Units.BYTES, Variability.MONOTONIC, false, ib);
    map.put(name, monitor);

    name = PerfDataBufferPrologue.PERFDATA_OVERFLOW_NAME;
    ib = prologue.overflowBuffer();
    monitor = new PerfIntegerMonitor(name, Units.BYTES, Variability.MONOTONIC, false, ib);
    map.put(name, monitor);
    this.overflow = (IntegerMonitor) monitor;

    name = PerfDataBufferPrologue.PERFDATA_MODTIMESTAMP_NAME;
    LongBuffer lb = prologue.modificationTimeStampBuffer();
    monitor = new PerfLongMonitor(name, Units.TICKS, Variability.MONOTONIC, false, lb);
    map.put(name, monitor);
  }