This file is indexed.

/usr/include/srecord/input/filter/interval.h is in libsrecord-dev 1.58-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
//
// srecord - Manipulate EPROM load files
// Copyright (C) 2008-2011 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation; either version 3 of the License, or (at
// your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//

#ifndef SRECORD_INPUT_FILTER_INTERVAL_H
#define SRECORD_INPUT_FILTER_INTERVAL_H

#include <srecord/endian.h>
#include <srecord/interval.h>
#include <srecord/input/filter.h>

namespace srecord {

/**
  * The srecord::input_filter_interval class is used to represent a filter
  * which works with the interval representing the data's coverage,
  * <i>exclusive</i> of where the result is to be placed.
  */
class input_filter_interval:
    public input_filter
{
public:
    /**
      * The destructor.
      */
    virtual ~input_filter_interval();

protected:
    /**
      * The constructor.
      *
      * @param deeper
      *     The input source to be filtered.
      * @param address
      *     The address at which to place the interval.
      * @param length
      *     The number of bytes of interval to be inserted.
      * @param end
      *     The byte order.
      * @param inclusive
      *     true if the output location is included in the address
      *     range, false if not
      */
    input_filter_interval(const input::pointer &deeper, long address,
        int length, endian_t end, bool inclusive);

    /**
      * The calculate_result method is used to calculate the final value
      * to be placed into the output.
      */
    virtual long calculate_result() const = 0;

    /**
      * The get_range method may be used to derived classes to get
      * access to the address range covered by the input data.
      */
    const interval &get_range() const { return range; }

    // See base class for documentation.
    bool read(record &record);

private:
    /**
      * The address instance variable is used to remember where the
      * final result is to be placed.
      */
    long address;

    /**
      * The length instance variable is used to remember how many bytes
      * are to be placed at the above address.
      *
      * 0 < length && length <= 8
      * (a length of zero means we have already emitted the results)
      */
    int length;

    /**
      * The end instance variable is used to remember whether to use
      * big endian order or little endian byte order.
      */
    endian_t end;

    /**
      * The range instance variable is used to remember the address
      * range covered by the input data.
      */
    interval range;

    /**
      * The generate method is used to generate the final record with
      * the interval data in it.
      *
      * @param record
      *     where to put the result
      */
    bool generate(record &record);

    /**
      * The default constructor.  Do not use.
      */
    input_filter_interval();

    /**
      * The copy constructor.  Do not use.
      */
    input_filter_interval(const input_filter_interval &);

    /**
      * The assignment operator.  Do not use.
      */
    input_filter_interval &operator=(const input_filter_interval &);
};

};

// vim: set ts=8 sw=4 et :
#endif // SRECORD_INPUT_FILTER_INTERVAL_H