1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* cpudata.h: Per-cpu parameters.
3  *
4  * Copyright (C) 2003, 2005, 2006 David S. Miller (davem@davemloft.net)
5  */
6 
7 #ifndef _SPARC64_CPUDATA_H
8 #define _SPARC64_CPUDATA_H
9 
10 #ifndef __ASSEMBLY__
11 
12 typedef struct {
13 	/* Dcache line 1 */
14 	unsigned int	__softirq_pending; /* must be 1st, see rtrap.S */
15 	unsigned int	__nmi_count;
16 	unsigned long	clock_tick;	/* %tick's per second */
17 	unsigned long	__pad;
18 	unsigned int	irq0_irqs;
19 	unsigned int	__pad2;
20 
21 	/* Dcache line 2, rarely used */
22 	unsigned int	dcache_size;
23 	unsigned int	dcache_line_size;
24 	unsigned int	icache_size;
25 	unsigned int	icache_line_size;
26 	unsigned int	ecache_size;
27 	unsigned int	ecache_line_size;
28 	unsigned short	sock_id;	/* physical package */
29 	unsigned short	core_id;
30 	unsigned short  max_cache_id;	/* groupings of highest shared cache */
31 	signed short	proc_id;	/* strand (aka HW thread) id */
32 } cpuinfo_sparc;
33 
34 DECLARE_PER_CPU(cpuinfo_sparc, __cpu_data);
35 #define cpu_data(__cpu)		per_cpu(__cpu_data, (__cpu))
36 #define local_cpu_data()	(*this_cpu_ptr(&__cpu_data))
37 
38 #endif /* !(__ASSEMBLY__) */
39 
40 #include <asm/trap_block.h>
41 
42 #endif /* _SPARC64_CPUDATA_H */
43