1// Copyright 2016 The Fuchsia Authors
2// Copyright (c) 2008-2014 Travis Geiselbrecht
3//
4// Use of this source code is governed by a MIT-style
5// license that can be found in the LICENSE file or at
6// https://opensource.org/licenses/MIT
7
8#pragma once
9
10#include <zircon/compiler.h>
11#include <sys/types.h>
12
13__BEGIN_CDECLS
14
15void arch_early_init(void);
16void arch_init(void);
17
18// Called just before initiating a system suspend to give the arch layer a
19// chance to save state.  Must be called with interrupts disabled.
20void arch_suspend(void);
21// Called immediately after resuming from a system suspend to let the arch layer
22// reinitialize arch components.  Must be called with interrupts disabled.
23void arch_resume(void);
24
25void arch_enter_uspace(uintptr_t entry_point, uintptr_t sp,
26                       uintptr_t arg1, uintptr_t arg2) __NO_RETURN;
27
28__END_CDECLS
29
30/* arch specific bits */
31#include <arch/defines.h>
32