1c085f386SAlexander von Gluck IV/*
2c085f386SAlexander von Gluck IV * Copyright 2019, Haiku, Inc. All Rights Reserved
3c085f386SAlexander von Gluck IV * Distributed under the terms of the MIT License.
4c085f386SAlexander von Gluck IV */
5c085f386SAlexander von Gluck IV
6c085f386SAlexander von Gluck IV
7c085f386SAlexander von Gluck IV#include <asm_defs.h>
8c085f386SAlexander von Gluck IV#include <arch_cpu_defs.h>
9c085f386SAlexander von Gluck IV
10c085f386SAlexander von Gluck IV
11c085f386SAlexander von Gluck IV.text
12c085f386SAlexander von Gluck IV
13c085f386SAlexander von Gluck IV
14c085f386SAlexander von Gluck IV#warning TODO: Fix overly simplistic IRQ
15c085f386SAlexander von Gluck IV
16c085f386SAlexander von Gluck IV/* void arch_int_enable_interrupts(void) */
17c085f386SAlexander von Gluck IVFUNCTION(arch_int_enable_interrupts):
1845ebdd42SAlexander von Gluck IV	li	t0, ARCH_SR_SIE
1945ebdd42SAlexander von Gluck IV	csrrs	zero, sstatus, t0
20c085f386SAlexander von Gluck IV	ret
21c085f386SAlexander von Gluck IVFUNCTION_END(arch_int_enable_interrupts)
22c085f386SAlexander von Gluck IV
23c085f386SAlexander von Gluck IV
24c085f386SAlexander von Gluck IV/* int arch_int_disable_interrupts(void)
25c085f386SAlexander von Gluck IV */
26c085f386SAlexander von Gluck IVFUNCTION(arch_int_disable_interrupts):
2745ebdd42SAlexander von Gluck IV	li	t0, ARCH_SR_SIE
2845ebdd42SAlexander von Gluck IV	csrrc	zero, sstatus, ARCH_SR_SIE
29c085f386SAlexander von Gluck IV	ret
30c085f386SAlexander von Gluck IVFUNCTION_END(arch_int_disable_interrupts)
31c085f386SAlexander von Gluck IV
32c085f386SAlexander von Gluck IV
33c085f386SAlexander von Gluck IV/* void arch_int_restore_interrupts(int oldState)
34c085f386SAlexander von Gluck IV */
35c085f386SAlexander von Gluck IVFUNCTION(arch_int_restore_interrupts):
36c085f386SAlexander von Gluck IV	// TODO
37c085f386SAlexander von Gluck IV	ret
38c085f386SAlexander von Gluck IVFUNCTION_END(arch_int_restore_interrupts)
39c085f386SAlexander von Gluck IV
40c085f386SAlexander von Gluck IV
41c085f386SAlexander von Gluck IV/* bool arch_int_are_interrupts_enabled(void) */
42c085f386SAlexander von Gluck IVFUNCTION(arch_int_are_interrupts_enabled):
43c085f386SAlexander von Gluck IV	// TODO
44c085f386SAlexander von Gluck IV	ret
45c085f386SAlexander von Gluck IVFUNCTION_END(arch_int_are_interrupts_enabled)
46c085f386SAlexander von Gluck IV
47c085f386SAlexander von Gluck IV
48c085f386SAlexander von Gluck IV/* status_t arch_cpu_user_memcpy(void *to, const void *from, size_t size, addr_t *faultHandler) */
49c085f386SAlexander von Gluck IVFUNCTION(_arch_cpu_user_memcpy):
50c085f386SAlexander von Gluck IV	// TODO
51c085f386SAlexander von Gluck IV	ret
52c085f386SAlexander von Gluck IVFUNCTION_END(_arch_cpu_user_memcpy)
53c085f386SAlexander von Gluck IV
54c085f386SAlexander von Gluck IV
55c085f386SAlexander von Gluck IV/* status_t arch_cpu_user_memset(void *to, char c, size_t count, addr_t *faultHandler) */
56c085f386SAlexander von Gluck IVFUNCTION(_arch_cpu_user_memset):
57c085f386SAlexander von Gluck IV	// TODO
58c085f386SAlexander von Gluck IV	ret
59c085f386SAlexander von Gluck IVFUNCTION_END(_arch_cpu_user_memset)
60c085f386SAlexander von Gluck IV
61c085f386SAlexander von Gluck IV
62c085f386SAlexander von Gluck IV/* ssize_t arch_cpu_user_strlcpy(void *to, const void *from, size_t size, addr_t *faultHandler) */
63c085f386SAlexander von Gluck IVFUNCTION(_arch_cpu_user_strlcpy):
64c085f386SAlexander von Gluck IV	// TODO
65c085f386SAlexander von Gluck IV	ret
66c085f386SAlexander von Gluck IVFUNCTION_END(_arch_cpu_user_strlcpy)
67