source: rtems/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h @ 255fe43

Last change on this file since 255fe43 was 255fe43, checked in by Joel Sherrill <joel@…>, on 03/01/22 at 20:40:44

cpukit/: Scripted embedded brains header file clean up

Updates #4625.

  • Property mode set to 100644
File size: 3.2 KB
Line 
1/* SPDX-License-Identifier: BSD-2-Clause */
2
3/*
4 * Copyright (c) 2016, 2018 embedded brains GmbH.  All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifndef _RTEMS_SCORE_SPARCIMPL_H
29#define _RTEMS_SCORE_SPARCIMPL_H
30
31#include <rtems/score/cpu.h>
32
33#ifdef __cplusplus
34extern "C" {
35#endif /* __cplusplus */
36
37struct timecounter;
38
39/*
40 * Provides a mutable alias to _SPARC_Counter for use in
41 * _SPARC_Counter_initialize().  The _SPARC_Counter and _SPARC_Counter_mutable
42 * are defined via the SPARC_COUNTER_DEFINITION define.
43 */
44extern SPARC_Counter _SPARC_Counter_mutable;
45
46void _SPARC_Counter_at_tick_clock( void );
47
48CPU_Counter_ticks _SPARC_Counter_read_default( void );
49
50CPU_Counter_ticks _SPARC_Counter_read_up( void );
51
52CPU_Counter_ticks _SPARC_Counter_read_down( void );
53
54CPU_Counter_ticks _SPARC_Counter_read_clock_isr_disabled( void );
55
56CPU_Counter_ticks _SPARC_Counter_read_clock( void );
57
58CPU_Counter_ticks _SPARC_Counter_read_asr23( void );
59
60uint32_t _SPARC_Get_timecount_up( struct timecounter * );
61
62uint32_t _SPARC_Get_timecount_down( struct timecounter * );
63
64uint32_t _SPARC_Get_timecount_clock( struct timecounter * );
65
66uint32_t _SPARC_Get_timecount_asr23( struct timecounter * );
67
68/*
69 * Defines the _SPARC_Counter and _SPARC_Counter_mutable global variables.
70 * Place this define in the global file scope of the CPU counter support file
71 * of the BSP.
72 */
73#define SPARC_COUNTER_DEFINITION \
74  __asm__ ( \
75    "\t.global\t_SPARC_Counter\n" \
76    "\t.global\t_SPARC_Counter_mutable\n" \
77    "\t.section\t.data._SPARC_Counter,\"aw\",@progbits\n" \
78    "\t.align\t4\n" \
79    "\t.type\t_SPARC_Counter, #object\n" \
80    "\t.size\t_SPARC_Counter, 28\n" \
81    "_SPARC_Counter:\n" \
82    "_SPARC_Counter_mutable:\n" \
83    "\t.long\t_SPARC_Counter_read_default\n" \
84    "\t.long\t_SPARC_Counter_read_default\n" \
85    "\t.long\t0\n" \
86    "\t.long\t0\n" \
87    "\t.long\t0\n" \
88    "\t.long\t0\n" \
89    "\t.long\t0\n" \
90    "\t.previous\n" \
91  )
92
93#ifdef __cplusplus
94}
95#endif /* __cplusplus */
96
97#endif /* _RTEMS_SCORE_SPARCIMPL_H */
Note: See TracBrowser for help on using the repository browser.