1*d1f3a23bSKevin Wolf/* 2*d1f3a23bSKevin Wolf * Copyright (c) 2013 Kevin Wolf <kwolf@redhat.com> 3*d1f3a23bSKevin Wolf * 4*d1f3a23bSKevin Wolf * Permission is hereby granted, free of charge, to any person obtaining a copy 5*d1f3a23bSKevin Wolf * of this software and associated documentation files (the "Software"), to deal 6*d1f3a23bSKevin Wolf * in the Software without restriction, including without limitation the rights 7*d1f3a23bSKevin Wolf * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8*d1f3a23bSKevin Wolf * copies of the Software, and to permit persons to whom the Software is 9*d1f3a23bSKevin Wolf * furnished to do so, subject to the following conditions: 10*d1f3a23bSKevin Wolf * 11*d1f3a23bSKevin Wolf * The above copyright notice and this permission notice shall be included in 12*d1f3a23bSKevin Wolf * all copies or substantial portions of the Software. 13*d1f3a23bSKevin Wolf * 14*d1f3a23bSKevin Wolf * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15*d1f3a23bSKevin Wolf * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16*d1f3a23bSKevin Wolf * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17*d1f3a23bSKevin Wolf * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18*d1f3a23bSKevin Wolf * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19*d1f3a23bSKevin Wolf * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20*d1f3a23bSKevin Wolf * THE SOFTWARE. 21*d1f3a23bSKevin Wolf */ 22*d1f3a23bSKevin Wolf 23*d1f3a23bSKevin Wolf.section multiboot 24*d1f3a23bSKevin Wolf 25*d1f3a23bSKevin Wolf#define MB_MAGIC 0x1badb002 26*d1f3a23bSKevin Wolf#define MB_FLAGS 0x0 27*d1f3a23bSKevin Wolf#define MB_CHECKSUM -(MB_MAGIC + MB_FLAGS) 28*d1f3a23bSKevin Wolf 29*d1f3a23bSKevin Wolf.align 4 30*d1f3a23bSKevin Wolf.int MB_MAGIC 31*d1f3a23bSKevin Wolf.int MB_FLAGS 32*d1f3a23bSKevin Wolf.int MB_CHECKSUM 33*d1f3a23bSKevin Wolf 34*d1f3a23bSKevin Wolf.section .text 35*d1f3a23bSKevin Wolf.global _start 36*d1f3a23bSKevin Wolf_start: 37*d1f3a23bSKevin Wolf mov $stack, %esp 38*d1f3a23bSKevin Wolf push %ebx 39*d1f3a23bSKevin Wolf push %eax 40*d1f3a23bSKevin Wolf call test_main 41*d1f3a23bSKevin Wolf 42*d1f3a23bSKevin Wolf /* Test device exit */ 43*d1f3a23bSKevin Wolf outl %eax, $0xf4 44*d1f3a23bSKevin Wolf 45*d1f3a23bSKevin Wolf cli 46*d1f3a23bSKevin Wolf hlt 47*d1f3a23bSKevin Wolf jmp . 48*d1f3a23bSKevin Wolf 49*d1f3a23bSKevin Wolf.section bss 50*d1f3a23bSKevin Wolf.space 8192 51*d1f3a23bSKevin Wolfstack: 52