hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/arch/riscv/include/asm/processor.h
....@@ -1,20 +1,14 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Copyright (C) 2012 Regents of the University of California
3
- *
4
- * This program is free software; you can redistribute it and/or
5
- * modify it under the terms of the GNU General Public License
6
- * as published by the Free Software Foundation, version 2.
7
- *
8
- * This program is distributed in the hope that it will be useful,
9
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
- * GNU General Public License for more details.
124 */
135
146 #ifndef _ASM_RISCV_PROCESSOR_H
157 #define _ASM_RISCV_PROCESSOR_H
168
179 #include <linux/const.h>
10
+
11
+#include <vdso/processor.h>
1812
1913 #include <asm/ptrace.h>
2014
....@@ -33,12 +27,6 @@
3327 struct task_struct;
3428 struct pt_regs;
3529
36
-/*
37
- * Default implementation of macro that returns current
38
- * instruction pointer ("program counter").
39
- */
40
-#define current_text_addr() ({ __label__ _l; _l: &&_l; })
41
-
4230 /* CPU-specific state of a task */
4331 struct thread_struct {
4432 /* Callee-saved registers */
....@@ -56,7 +44,7 @@
5644 ((struct pt_regs *)(task_stack_page(tsk) + THREAD_SIZE \
5745 - ALIGN(sizeof(struct pt_regs), STACK_ALIGN)))
5846
59
-#define KSTK_EIP(tsk) (task_pt_regs(tsk)->sepc)
47
+#define KSTK_EIP(tsk) (task_pt_regs(tsk)->epc)
6048 #define KSTK_ESP(tsk) (task_pt_regs(tsk)->sp)
6149
6250
....@@ -72,23 +60,14 @@
7260 extern unsigned long get_wchan(struct task_struct *p);
7361
7462
75
-static inline void cpu_relax(void)
76
-{
77
-#ifdef __riscv_muldiv
78
- int dummy;
79
- /* In lieu of a halt instruction, induce a long-latency stall. */
80
- __asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy));
81
-#endif
82
- barrier();
83
-}
84
-
8563 static inline void wait_for_interrupt(void)
8664 {
8765 __asm__ __volatile__ ("wfi");
8866 }
8967
9068 struct device_node;
91
-extern int riscv_of_processor_hart(struct device_node *node);
69
+int riscv_of_processor_hartid(struct device_node *node);
70
+int riscv_of_parent_hartid(struct device_node *node);
9271
9372 extern void riscv_fill_hwcap(void);
9473