11556Srgrimes/**
21556Srgrimes * \file
31556Srgrimes * \brief x86-64 architecture initialization
41556Srgrimes */
51556Srgrimes
61556Srgrimes/*
71556Srgrimes * Copyright (c) 2007, 2008, 2010, ETH Zurich.
81556Srgrimes * All rights reserved.
91556Srgrimes *
101556Srgrimes * This file is distributed under the terms in the attached LICENSE file.
111556Srgrimes * If you do not find this file, copies can be found by writing to:
121556Srgrimes * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
131556Srgrimes */
141556Srgrimes
151556Srgrimes#ifndef INIT_H
161556Srgrimes#define INIT_H
171556Srgrimes
181556Srgrimes/// Magic value passed when kernel is booted by itself (and not bootloader)
191556Srgrimes#define KERNEL_BOOT_MAGIC       0x33e1f154
201556Srgrimes
211556Srgrimes#ifndef __ASSEMBLER__
221556Srgrimes
231556Srgrimesextern bool idt_initialized;
241556Srgrimes
251556Srgrimesvoid arch_init(uint64_t magic, void *pointer) __attribute__ ((noreturn));
261556Srgrimes
271556Srgrimes/**
28127499Sgad * Fast system call entry point (in Assembler).
29127499Sgad */
30127499Sgadextern void syscall_entry(void);
31127499Sgad
32127499Sgad#endif
33127499Sgad
34127499Sgad#endif
351556Srgrimes