1*ca987d46SWarner Losh# 2*ca987d46SWarner Losh# Copyright (c) 1998 Robert Nordier 3*ca987d46SWarner Losh# All rights reserved. 4*ca987d46SWarner Losh# 5*ca987d46SWarner Losh# Redistribution and use in source and binary forms are freely 6*ca987d46SWarner Losh# permitted provided that the above copyright notice and this 7*ca987d46SWarner Losh# paragraph and the following disclaimer are duplicated in all 8*ca987d46SWarner Losh# such forms. 9*ca987d46SWarner Losh# 10*ca987d46SWarner Losh# This software is provided "AS IS" and without any express or 11*ca987d46SWarner Losh# implied warranties, including, without limitation, the implied 12*ca987d46SWarner Losh# warranties of merchantability and fitness for a particular 13*ca987d46SWarner Losh# purpose. 14*ca987d46SWarner Losh# 15*ca987d46SWarner Losh 16*ca987d46SWarner Losh#include <bootargs.h> 17*ca987d46SWarner Losh 18*ca987d46SWarner Losh# 19*ca987d46SWarner Losh# BTX C startup code (ELF). 20*ca987d46SWarner Losh# 21*ca987d46SWarner Losh 22*ca987d46SWarner Losh# 23*ca987d46SWarner Losh# Globals. 24*ca987d46SWarner Losh# 25*ca987d46SWarner Losh .global _start 26*ca987d46SWarner Losh# 27*ca987d46SWarner Losh# Client entry point. 28*ca987d46SWarner Losh# 29*ca987d46SWarner Losh_start: cld 30*ca987d46SWarner Losh pushl %eax 31*ca987d46SWarner Losh movl $_edata,%edi 32*ca987d46SWarner Losh movl $_end,%ecx 33*ca987d46SWarner Losh subl %edi, %ecx 34*ca987d46SWarner Losh xorb %al, %al 35*ca987d46SWarner Losh rep 36*ca987d46SWarner Losh stosb 37*ca987d46SWarner Losh popl __base 38*ca987d46SWarner Losh movl %esp,%eax # Set 39*ca987d46SWarner Losh addl $ARGADJ,%eax # argument 40*ca987d46SWarner Losh movl %eax,__args # pointer 41*ca987d46SWarner Losh call main # Invoke client main() 42*ca987d46SWarner Losh call exit # Invoke client exit() 43*ca987d46SWarner Losh# 44*ca987d46SWarner Losh# Data. 45*ca987d46SWarner Losh# 46*ca987d46SWarner Losh .comm __base,4 # Client base address 47*ca987d46SWarner Losh .comm __args,4 # Client arguments 48