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