profiling

  1# This file was automatically generated by SWIG (https://www.swig.org).
  2# Version 4.2.1
  3#
  4# Do not make changes to this file unless you know what you are doing - modify
  5# the SWIG interface file instead.
  6
  7from sys import version_info as _swig_python_version_info
  8from mock_rtems import _profiling as _profiling
  9
 10try:
 11    import builtins as __builtin__
 12except ImportError:
 13    import __builtin__
 14
 15def _swig_repr(self):
 16    try:
 17        strthis = "proxy of " + self.this.__repr__()
 18    except __builtin__.Exception:
 19        strthis = ""
 20    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
 21
 22
 23def _swig_setattr_nondynamic_instance_variable(set):
 24    def set_instance_attr(self, name, value):
 25        if name == "this":
 26            set(self, name, value)
 27        elif name == "thisown":
 28            self.this.own(value)
 29        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
 30            set(self, name, value)
 31        else:
 32            raise AttributeError("You cannot add instance attributes to %s" % self)
 33    return set_instance_attr
 34
 35
 36def _swig_setattr_nondynamic_class_variable(set):
 37    def set_class_attr(cls, name, value):
 38        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
 39            set(cls, name, value)
 40        else:
 41            raise AttributeError("You cannot add class attributes to %s" % cls)
 42    return set_class_attr
 43
 44
 45def _swig_add_metaclass(metaclass):
 46    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
 47    def wrapper(cls):
 48        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
 49    return wrapper
 50
 51
 52class _SwigNonDynamicMeta(type):
 53    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
 54    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)
 55
 56
 57RTEMS_PROFILING_PER_CPU = _profiling.RTEMS_PROFILING_PER_CPU
 58r"""
 59    Type of per-CPU profiling data.
 60
 61    See also: rtems_profiling_per_cpu.
 62    """
 63RTEMS_PROFILING_SMP_LOCK = _profiling.RTEMS_PROFILING_SMP_LOCK
 64r"""
 65    Type of SMP lock profiling data.
 66
 67    See also: rtems_profiling_smp_lock.
 68    """
 69class rtems_profiling_header(object):
 70    r"""The profiling data header."""
 71
 72    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
 73    __repr__ = _swig_repr
 74    type = property(_profiling.rtems_profiling_header_type_get, _profiling.rtems_profiling_header_type_set, doc=r"""The profiling data type.""")
 75
 76    def __init__(self):
 77        r"""__init__(rtems_profiling_header self) -> rtems_profiling_header"""
 78        _profiling.rtems_profiling_header_swiginit(self, _profiling.new_rtems_profiling_header())
 79    __swig_destroy__ = _profiling.delete_rtems_profiling_header
 80
 81# Register rtems_profiling_header in _profiling:
 82_profiling.rtems_profiling_header_swigregister(rtems_profiling_header)
 83class rtems_profiling_per_cpu(object):
 84    r"""
 85    Per-CPU profiling data.
 86
 87    Theoretically all values in this structure can overflow, but the integer
 88    types are chosen so that they cannot overflow in practice.  On systems with
 89    a 1GHz CPU counter, the 64-bit integers can overflow in about 58 years.
 90    Since the system should not spend most of the time in critical sections the
 91    actual system run-time is much longer.  Several other counters in the system
 92    will overflow before we get a problem in the profiling area.
 93    """
 94
 95    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
 96    __repr__ = _swig_repr
 97    header = property(_profiling.rtems_profiling_per_cpu_header_get, _profiling.rtems_profiling_per_cpu_header_set, doc=r"""The profiling data header.""")
 98    processor_index = property(_profiling.rtems_profiling_per_cpu_processor_index_get, _profiling.rtems_profiling_per_cpu_processor_index_set, doc=r"""The processor index of this profiling data.""")
 99    max_thread_dispatch_disabled_time = property(_profiling.rtems_profiling_per_cpu_max_thread_dispatch_disabled_time_get, _profiling.rtems_profiling_per_cpu_max_thread_dispatch_disabled_time_set, doc=r"""The maximum time of disabled thread dispatching in nanoseconds.""")
100    thread_dispatch_disabled_count = property(_profiling.rtems_profiling_per_cpu_thread_dispatch_disabled_count_get, _profiling.rtems_profiling_per_cpu_thread_dispatch_disabled_count_set, doc=r"""
101    Count of times when the thread dispatch disable level changes from
102    zero to one in thread context.
103
104    This value may overflow.
105    """)
106    total_thread_dispatch_disabled_time = property(_profiling.rtems_profiling_per_cpu_total_thread_dispatch_disabled_time_get, _profiling.rtems_profiling_per_cpu_total_thread_dispatch_disabled_time_set, doc=r"""
107    Total time of disabled thread dispatching in nanoseconds.
108
109    The average time of disabled thread dispatching is the total time of
110    disabled thread dispatching divided by the thread dispatch disabled
111    count.
112
113    This value may overflow.
114    """)
115    max_interrupt_delay = property(_profiling.rtems_profiling_per_cpu_max_interrupt_delay_get, _profiling.rtems_profiling_per_cpu_max_interrupt_delay_set, doc=r"""
116    The maximum interrupt delay in nanoseconds if supported by the
117    hardware.
118
119    The interrupt delay is the time interval from the recognition of an
120    interrupt signal by the hardware up to the execution start of the
121    corresponding high-level handler.  The interrupt delay is the main
122    contributor to the interrupt latency.  To measure this time hardware
123    support is required.  A time stamp unit must capture the interrupt signal
124    recognition time.  If no hardware support is available, then this field
125    will have a constant value of zero.
126    """)
127    max_interrupt_time = property(_profiling.rtems_profiling_per_cpu_max_interrupt_time_get, _profiling.rtems_profiling_per_cpu_max_interrupt_time_set, doc=r"""
128    The maximum time spent to process a single sequence of nested
129    interrupts in nanoseconds.
130
131    This is the time interval between the change of the interrupt nest level
132    from zero to one and the change back from one to zero.  It is the measured
133    worst-case execution time of interrupt service routines.  Please note that
134    in case of nested interrupts this time includes the combined execution
135    time and not the maximum time of an individual interrupt service routine.
136    """)
137    interrupt_count = property(_profiling.rtems_profiling_per_cpu_interrupt_count_get, _profiling.rtems_profiling_per_cpu_interrupt_count_set, doc=r"""
138    Count of times when the interrupt nest level changes from zero to
139    one.
140
141    This value may overflow.
142    """)
143    total_interrupt_time = property(_profiling.rtems_profiling_per_cpu_total_interrupt_time_get, _profiling.rtems_profiling_per_cpu_total_interrupt_time_set, doc=r"""
144    Total time of interrupt processing in nanoseconds.
145
146    The average time of interrupt processing is the total time of interrupt
147    processing divided by the interrupt count.
148
149    This value may overflow.
150    """)
151
152    def __init__(self):
153        r"""__init__(rtems_profiling_per_cpu self) -> rtems_profiling_per_cpu"""
154        _profiling.rtems_profiling_per_cpu_swiginit(self, _profiling.new_rtems_profiling_per_cpu())
155    __swig_destroy__ = _profiling.delete_rtems_profiling_per_cpu
156
157# Register rtems_profiling_per_cpu in _profiling:
158_profiling.rtems_profiling_per_cpu_swigregister(rtems_profiling_per_cpu)
159RTEMS_PROFILING_SMP_LOCK_CONTENTION_COUNTS = _profiling.RTEMS_PROFILING_SMP_LOCK_CONTENTION_COUNTS
160r"""Count of lock contention counters for SMP lock profiling."""
161class rtems_profiling_smp_lock(object):
162    r"""
163    SMP lock profiling data.
164
165    The lock acquire attempt instant is the point in time right after the
166    interrupt disable action in the lock acquire sequence.
167
168    The lock acquire instant is the point in time right after the lock
169    acquisition.  This is the begin of the critical section code execution.
170
171    The lock acquire time is the time elapsed between the lock acquire attempt
172    instant and the lock acquire instant.
173
174    The lock release instant is the point in time right before the interrupt
175    enable action in the lock release sequence.
176
177    The lock section time is the time elapsed between the lock acquire instant
178    and the lock release instant.
179    """
180
181    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
182    __repr__ = _swig_repr
183    header = property(_profiling.rtems_profiling_smp_lock_header_get, _profiling.rtems_profiling_smp_lock_header_set, doc=r"""The profiling data header.""")
184    name = property(_profiling.rtems_profiling_smp_lock_name_get, _profiling.rtems_profiling_smp_lock_name_set, doc=r"""The lock name.""")
185    max_acquire_time = property(_profiling.rtems_profiling_smp_lock_max_acquire_time_get, _profiling.rtems_profiling_smp_lock_max_acquire_time_set, doc=r"""The maximum lock acquire time in nanoseconds.""")
186    max_section_time = property(_profiling.rtems_profiling_smp_lock_max_section_time_get, _profiling.rtems_profiling_smp_lock_max_section_time_set, doc=r"""The maximum lock section time in nanoseconds.""")
187    usage_count = property(_profiling.rtems_profiling_smp_lock_usage_count_get, _profiling.rtems_profiling_smp_lock_usage_count_set, doc=r"""
188    The count of lock uses.
189
190    This value may overflow.
191    """)
192    total_acquire_time = property(_profiling.rtems_profiling_smp_lock_total_acquire_time_get, _profiling.rtems_profiling_smp_lock_total_acquire_time_set, doc=r"""
193    Total lock acquire time in nanoseconds.
194
195    The average lock acquire time is the total acquire time divided by the
196    lock usage count.  The ration of the total section and total acquire times
197    gives a measure for the lock contention.
198
199    This value may overflow.
200    """)
201    total_section_time = property(_profiling.rtems_profiling_smp_lock_total_section_time_get, _profiling.rtems_profiling_smp_lock_total_section_time_set, doc=r"""
202    Total lock section time in nanoseconds.
203
204    The average lock section time is the total section time divided by the
205    lock usage count.
206
207    This value may overflow.
208    """)
209    contention_counts = property(_profiling.rtems_profiling_smp_lock_contention_counts_get, _profiling.rtems_profiling_smp_lock_contention_counts_set, doc=r"""
210    The counts of lock acquire operations by contention.
211
212    The contention count for index N corresponds to a lock acquire attempt
213    with an initial queue length of N.  The last index corresponds to all
214    lock acquire attempts with an initial queue length greater than or equal
215    to RTEMS_PROFILING_SMP_LOCK_CONTENTION_COUNTS minus one.
216
217    The values may overflow.
218    """)
219
220    def __init__(self):
221        r"""__init__(rtems_profiling_smp_lock self) -> rtems_profiling_smp_lock"""
222        _profiling.rtems_profiling_smp_lock_swiginit(self, _profiling.new_rtems_profiling_smp_lock())
223    __swig_destroy__ = _profiling.delete_rtems_profiling_smp_lock
224
225# Register rtems_profiling_smp_lock in _profiling:
226_profiling.rtems_profiling_smp_lock_swigregister(rtems_profiling_smp_lock)
227class rtems_profiling_data(object):
228    r"""Collection of profiling data."""
229
230    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
231    __repr__ = _swig_repr
232    header = property(_profiling.rtems_profiling_data_header_get, _profiling.rtems_profiling_data_header_set, doc=r"""Header to specify the actual profiling data.""")
233    per_cpu = property(_profiling.rtems_profiling_data_per_cpu_get, _profiling.rtems_profiling_data_per_cpu_set, doc=r"""Per-CPU profiling data if indicated by the header.""")
234    smp_lock = property(_profiling.rtems_profiling_data_smp_lock_get, _profiling.rtems_profiling_data_smp_lock_set, doc=r"""SMP lock profiling data if indicated by the header.""")
235
236    def __init__(self):
237        r"""__init__(rtems_profiling_data self) -> rtems_profiling_data"""
238        _profiling.rtems_profiling_data_swiginit(self, _profiling.new_rtems_profiling_data())
239    __swig_destroy__ = _profiling.delete_rtems_profiling_data
240
241# Register rtems_profiling_data in _profiling:
242_profiling.rtems_profiling_data_swigregister(rtems_profiling_data)
243
244def rtems_profiling_iterate(visitor, visitor_arg):
245    r"""
246    Iterates through all profiling data of the system.
247
248    :type visitor: void, in
249    :param visitor: The visitor.
250    :param out]: visitor_arg The visitor argument.
251    """
252    return _profiling.rtems_profiling_iterate(visitor, visitor_arg)
253
254def rtems_profiling_report_xml(name, printer, indentation_level, indentation):
255    r"""
256    Reports profiling data as XML.
257
258    :type name: string, in
259    :param name: The name of the profiling report.
260    :type printer: rtems_printer, in
261    :param printer: The RTEMS printer to send the output too.
262    :type indentation_level: uint32_t, in
263    :param indentation_level: The current indentation level.
264    :type indentation: string, in
265    :param indentation: The string used for indentation.
266
267    :rtype: int
268    :return: As specified by printf().
269    """
270    return _profiling.rtems_profiling_report_xml(name, printer, indentation_level, indentation)
RTEMS_PROFILING_PER_CPU = See C documentation

Type of per-CPU profiling data.

See also: rtems_profiling_per_cpu.

RTEMS_PROFILING_SMP_LOCK = See C documentation

Type of SMP lock profiling data.

See also: rtems_profiling_smp_lock.

class rtems_profiling_header:
70class rtems_profiling_header(object):
71    r"""The profiling data header."""
72
73    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
74    __repr__ = _swig_repr
75    type = property(_profiling.rtems_profiling_header_type_get, _profiling.rtems_profiling_header_type_set, doc=r"""The profiling data type.""")
76
77    def __init__(self):
78        r"""__init__(rtems_profiling_header self) -> rtems_profiling_header"""
79        _profiling.rtems_profiling_header_swiginit(self, _profiling.new_rtems_profiling_header())
80    __swig_destroy__ = _profiling.delete_rtems_profiling_header

The profiling data header.

rtems_profiling_header()
77    def __init__(self):
78        r"""__init__(rtems_profiling_header self) -> rtems_profiling_header"""
79        _profiling.rtems_profiling_header_swiginit(self, _profiling.new_rtems_profiling_header())

__init__(rtems_profiling_header self) -> rtems_profiling_header

thisown
73    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

The membership flag

type
class rtems_profiling_per_cpu:
 84class rtems_profiling_per_cpu(object):
 85    r"""
 86    Per-CPU profiling data.
 87
 88    Theoretically all values in this structure can overflow, but the integer
 89    types are chosen so that they cannot overflow in practice.  On systems with
 90    a 1GHz CPU counter, the 64-bit integers can overflow in about 58 years.
 91    Since the system should not spend most of the time in critical sections the
 92    actual system run-time is much longer.  Several other counters in the system
 93    will overflow before we get a problem in the profiling area.
 94    """
 95
 96    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
 97    __repr__ = _swig_repr
 98    header = property(_profiling.rtems_profiling_per_cpu_header_get, _profiling.rtems_profiling_per_cpu_header_set, doc=r"""The profiling data header.""")
 99    processor_index = property(_profiling.rtems_profiling_per_cpu_processor_index_get, _profiling.rtems_profiling_per_cpu_processor_index_set, doc=r"""The processor index of this profiling data.""")
100    max_thread_dispatch_disabled_time = property(_profiling.rtems_profiling_per_cpu_max_thread_dispatch_disabled_time_get, _profiling.rtems_profiling_per_cpu_max_thread_dispatch_disabled_time_set, doc=r"""The maximum time of disabled thread dispatching in nanoseconds.""")
101    thread_dispatch_disabled_count = property(_profiling.rtems_profiling_per_cpu_thread_dispatch_disabled_count_get, _profiling.rtems_profiling_per_cpu_thread_dispatch_disabled_count_set, doc=r"""
102    Count of times when the thread dispatch disable level changes from
103    zero to one in thread context.
104
105    This value may overflow.
106    """)
107    total_thread_dispatch_disabled_time = property(_profiling.rtems_profiling_per_cpu_total_thread_dispatch_disabled_time_get, _profiling.rtems_profiling_per_cpu_total_thread_dispatch_disabled_time_set, doc=r"""
108    Total time of disabled thread dispatching in nanoseconds.
109
110    The average time of disabled thread dispatching is the total time of
111    disabled thread dispatching divided by the thread dispatch disabled
112    count.
113
114    This value may overflow.
115    """)
116    max_interrupt_delay = property(_profiling.rtems_profiling_per_cpu_max_interrupt_delay_get, _profiling.rtems_profiling_per_cpu_max_interrupt_delay_set, doc=r"""
117    The maximum interrupt delay in nanoseconds if supported by the
118    hardware.
119
120    The interrupt delay is the time interval from the recognition of an
121    interrupt signal by the hardware up to the execution start of the
122    corresponding high-level handler.  The interrupt delay is the main
123    contributor to the interrupt latency.  To measure this time hardware
124    support is required.  A time stamp unit must capture the interrupt signal
125    recognition time.  If no hardware support is available, then this field
126    will have a constant value of zero.
127    """)
128    max_interrupt_time = property(_profiling.rtems_profiling_per_cpu_max_interrupt_time_get, _profiling.rtems_profiling_per_cpu_max_interrupt_time_set, doc=r"""
129    The maximum time spent to process a single sequence of nested
130    interrupts in nanoseconds.
131
132    This is the time interval between the change of the interrupt nest level
133    from zero to one and the change back from one to zero.  It is the measured
134    worst-case execution time of interrupt service routines.  Please note that
135    in case of nested interrupts this time includes the combined execution
136    time and not the maximum time of an individual interrupt service routine.
137    """)
138    interrupt_count = property(_profiling.rtems_profiling_per_cpu_interrupt_count_get, _profiling.rtems_profiling_per_cpu_interrupt_count_set, doc=r"""
139    Count of times when the interrupt nest level changes from zero to
140    one.
141
142    This value may overflow.
143    """)
144    total_interrupt_time = property(_profiling.rtems_profiling_per_cpu_total_interrupt_time_get, _profiling.rtems_profiling_per_cpu_total_interrupt_time_set, doc=r"""
145    Total time of interrupt processing in nanoseconds.
146
147    The average time of interrupt processing is the total time of interrupt
148    processing divided by the interrupt count.
149
150    This value may overflow.
151    """)
152
153    def __init__(self):
154        r"""__init__(rtems_profiling_per_cpu self) -> rtems_profiling_per_cpu"""
155        _profiling.rtems_profiling_per_cpu_swiginit(self, _profiling.new_rtems_profiling_per_cpu())
156    __swig_destroy__ = _profiling.delete_rtems_profiling_per_cpu

Per-CPU profiling data.

Theoretically all values in this structure can overflow, but the integer types are chosen so that they cannot overflow in practice. On systems with a 1GHz CPU counter, the 64-bit integers can overflow in about 58 years. Since the system should not spend most of the time in critical sections the actual system run-time is much longer. Several other counters in the system will overflow before we get a problem in the profiling area.

rtems_profiling_per_cpu()
153    def __init__(self):
154        r"""__init__(rtems_profiling_per_cpu self) -> rtems_profiling_per_cpu"""
155        _profiling.rtems_profiling_per_cpu_swiginit(self, _profiling.new_rtems_profiling_per_cpu())

__init__(rtems_profiling_per_cpu self) -> rtems_profiling_per_cpu

thisown
96    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

The membership flag

header
processor_index
max_thread_dispatch_disabled_time
thread_dispatch_disabled_count
total_thread_dispatch_disabled_time
max_interrupt_delay
max_interrupt_time
interrupt_count
total_interrupt_time
RTEMS_PROFILING_SMP_LOCK_CONTENTION_COUNTS = See C documentation

Count of lock contention counters for SMP lock profiling.

class rtems_profiling_smp_lock:
162class rtems_profiling_smp_lock(object):
163    r"""
164    SMP lock profiling data.
165
166    The lock acquire attempt instant is the point in time right after the
167    interrupt disable action in the lock acquire sequence.
168
169    The lock acquire instant is the point in time right after the lock
170    acquisition.  This is the begin of the critical section code execution.
171
172    The lock acquire time is the time elapsed between the lock acquire attempt
173    instant and the lock acquire instant.
174
175    The lock release instant is the point in time right before the interrupt
176    enable action in the lock release sequence.
177
178    The lock section time is the time elapsed between the lock acquire instant
179    and the lock release instant.
180    """
181
182    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
183    __repr__ = _swig_repr
184    header = property(_profiling.rtems_profiling_smp_lock_header_get, _profiling.rtems_profiling_smp_lock_header_set, doc=r"""The profiling data header.""")
185    name = property(_profiling.rtems_profiling_smp_lock_name_get, _profiling.rtems_profiling_smp_lock_name_set, doc=r"""The lock name.""")
186    max_acquire_time = property(_profiling.rtems_profiling_smp_lock_max_acquire_time_get, _profiling.rtems_profiling_smp_lock_max_acquire_time_set, doc=r"""The maximum lock acquire time in nanoseconds.""")
187    max_section_time = property(_profiling.rtems_profiling_smp_lock_max_section_time_get, _profiling.rtems_profiling_smp_lock_max_section_time_set, doc=r"""The maximum lock section time in nanoseconds.""")
188    usage_count = property(_profiling.rtems_profiling_smp_lock_usage_count_get, _profiling.rtems_profiling_smp_lock_usage_count_set, doc=r"""
189    The count of lock uses.
190
191    This value may overflow.
192    """)
193    total_acquire_time = property(_profiling.rtems_profiling_smp_lock_total_acquire_time_get, _profiling.rtems_profiling_smp_lock_total_acquire_time_set, doc=r"""
194    Total lock acquire time in nanoseconds.
195
196    The average lock acquire time is the total acquire time divided by the
197    lock usage count.  The ration of the total section and total acquire times
198    gives a measure for the lock contention.
199
200    This value may overflow.
201    """)
202    total_section_time = property(_profiling.rtems_profiling_smp_lock_total_section_time_get, _profiling.rtems_profiling_smp_lock_total_section_time_set, doc=r"""
203    Total lock section time in nanoseconds.
204
205    The average lock section time is the total section time divided by the
206    lock usage count.
207
208    This value may overflow.
209    """)
210    contention_counts = property(_profiling.rtems_profiling_smp_lock_contention_counts_get, _profiling.rtems_profiling_smp_lock_contention_counts_set, doc=r"""
211    The counts of lock acquire operations by contention.
212
213    The contention count for index N corresponds to a lock acquire attempt
214    with an initial queue length of N.  The last index corresponds to all
215    lock acquire attempts with an initial queue length greater than or equal
216    to RTEMS_PROFILING_SMP_LOCK_CONTENTION_COUNTS minus one.
217
218    The values may overflow.
219    """)
220
221    def __init__(self):
222        r"""__init__(rtems_profiling_smp_lock self) -> rtems_profiling_smp_lock"""
223        _profiling.rtems_profiling_smp_lock_swiginit(self, _profiling.new_rtems_profiling_smp_lock())
224    __swig_destroy__ = _profiling.delete_rtems_profiling_smp_lock

SMP lock profiling data.

The lock acquire attempt instant is the point in time right after the interrupt disable action in the lock acquire sequence.

The lock acquire instant is the point in time right after the lock acquisition. This is the begin of the critical section code execution.

The lock acquire time is the time elapsed between the lock acquire attempt instant and the lock acquire instant.

The lock release instant is the point in time right before the interrupt enable action in the lock release sequence.

The lock section time is the time elapsed between the lock acquire instant and the lock release instant.

rtems_profiling_smp_lock()
221    def __init__(self):
222        r"""__init__(rtems_profiling_smp_lock self) -> rtems_profiling_smp_lock"""
223        _profiling.rtems_profiling_smp_lock_swiginit(self, _profiling.new_rtems_profiling_smp_lock())

__init__(rtems_profiling_smp_lock self) -> rtems_profiling_smp_lock

thisown
182    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

The membership flag

header
name
max_acquire_time
max_section_time
usage_count
total_acquire_time
total_section_time
contention_counts
class rtems_profiling_data:
228class rtems_profiling_data(object):
229    r"""Collection of profiling data."""
230
231    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
232    __repr__ = _swig_repr
233    header = property(_profiling.rtems_profiling_data_header_get, _profiling.rtems_profiling_data_header_set, doc=r"""Header to specify the actual profiling data.""")
234    per_cpu = property(_profiling.rtems_profiling_data_per_cpu_get, _profiling.rtems_profiling_data_per_cpu_set, doc=r"""Per-CPU profiling data if indicated by the header.""")
235    smp_lock = property(_profiling.rtems_profiling_data_smp_lock_get, _profiling.rtems_profiling_data_smp_lock_set, doc=r"""SMP lock profiling data if indicated by the header.""")
236
237    def __init__(self):
238        r"""__init__(rtems_profiling_data self) -> rtems_profiling_data"""
239        _profiling.rtems_profiling_data_swiginit(self, _profiling.new_rtems_profiling_data())
240    __swig_destroy__ = _profiling.delete_rtems_profiling_data

Collection of profiling data.

rtems_profiling_data()
237    def __init__(self):
238        r"""__init__(rtems_profiling_data self) -> rtems_profiling_data"""
239        _profiling.rtems_profiling_data_swiginit(self, _profiling.new_rtems_profiling_data())

__init__(rtems_profiling_data self) -> rtems_profiling_data

thisown
231    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

The membership flag

header
per_cpu
smp_lock
def rtems_profiling_iterate(visitor, visitor_arg):
245def rtems_profiling_iterate(visitor, visitor_arg):
246    r"""
247    Iterates through all profiling data of the system.
248
249    :type visitor: void, in
250    :param visitor: The visitor.
251    :param out]: visitor_arg The visitor argument.
252    """
253    return _profiling.rtems_profiling_iterate(visitor, visitor_arg)

Iterates through all profiling data of the system.

Parameters
  • visitor: The visitor.
  • out]: visitor_arg The visitor argument.
def rtems_profiling_report_xml(name, printer, indentation_level, indentation):
255def rtems_profiling_report_xml(name, printer, indentation_level, indentation):
256    r"""
257    Reports profiling data as XML.
258
259    :type name: string, in
260    :param name: The name of the profiling report.
261    :type printer: rtems_printer, in
262    :param printer: The RTEMS printer to send the output too.
263    :type indentation_level: uint32_t, in
264    :param indentation_level: The current indentation level.
265    :type indentation: string, in
266    :param indentation: The string used for indentation.
267
268    :rtype: int
269    :return: As specified by printf().
270    """
271    return _profiling.rtems_profiling_report_xml(name, printer, indentation_level, indentation)

Reports profiling data as XML.

Parameters
  • name: The name of the profiling report.
  • printer: The RTEMS printer to send the output too.
  • indentation_level: The current indentation level.
  • indentation: The string used for indentation.
Returns

As specified by printf().