RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
sparc
include
bsp
sparc-counter.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
11
12
/*
13
* Copyright (C) 2016, 2023 embedded brains GmbH & Co. KG
14
*
15
* Redistribution and use in source and binary forms, with or without
16
* modification, are permitted provided that the following conditions
17
* are met:
18
* 1. Redistributions of source code must retain the above copyright
19
* notice, this list of conditions and the following disclaimer.
20
* 2. Redistributions in binary form must reproduce the above copyright
21
* notice, this list of conditions and the following disclaimer in the
22
* documentation and/or other materials provided with the distribution.
23
*
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34
* POSSIBILITY OF SUCH DAMAGE.
35
*/
36
37
#ifndef _BSP_SPARC_COUNTER_H
38
#define _BSP_SPARC_COUNTER_H
39
40
#include <rtems/score/cpu.h>
41
42
#ifdef __cplusplus
43
extern
"C"
{
44
#endif
/* __cplusplus */
45
46
struct
timecounter
;
47
48
void
_SPARC_Counter_at_tick_clock(
void
);
49
50
CPU_Counter_ticks
_SPARC_Counter_read_default(
void
);
51
52
CPU_Counter_ticks
_SPARC_Counter_read_clock_isr_disabled(
void
);
53
54
CPU_Counter_ticks
_SPARC_Counter_read_clock(
void
);
55
56
uint32_t _SPARC_Get_timecount_clock(
struct
timecounter
* );
57
58
typedef
CPU_Counter_ticks
( *SPARC_Counter_read )( void );
59
60
/*
61
* The SPARC processors supported by RTEMS have no built-in CPU counter
62
* support. We have to use some hardware counter module for this purpose, for
63
* example the GPTIMER instance used by the clock driver. The BSP must provide
64
* an implementation of the CPU counter read function. This allows the use of
65
* dynamic hardware enumeration.
66
*/
67
typedef
struct
{
68
SPARC_Counter_read read_isr_disabled;
69
SPARC_Counter_read read;
70
volatile
const
CPU_Counter_ticks
*counter_register;
71
volatile
const
uint32_t *pending_register;
72
uint32_t pending_mask;
73
CPU_Counter_ticks
accumulated;
74
CPU_Counter_ticks
interval;
75
}
SPARC_Counter
;
76
77
extern
SPARC_Counter
_SPARC_Counter;
78
79
#define SPARC_COUNTER_DEFINITION \
80
SPARC_Counter _SPARC_Counter = { \
81
.read_isr_disabled = _SPARC_Counter_read_default, \
82
.read = _SPARC_Counter_read_default \
83
}
84
85
#ifdef __cplusplus
86
}
87
#endif
/* __cplusplus */
88
89
#endif
/* _BSP_SPARC_COUNTER_H */
CPU_Counter_ticks
uint32_t CPU_Counter_ticks
Unsigned integer type for CPU counter values.
Definition
cpu.h:381
SPARC_Counter
Definition
sparc-counter.h:67
timecounter
Definition
timetc.h:58
Generated by
1.18.0