139165Srnordier# 239165Srnordier# Copyright (c) 1998 Robert Nordier 339165Srnordier# All rights reserved. 439165Srnordier# 539165Srnordier# Redistribution and use in source and binary forms are freely 639165Srnordier# permitted provided that the above copyright notice and this 739165Srnordier# paragraph and the following disclaimer are duplicated in all 839165Srnordier# such forms. 939165Srnordier# 1039165Srnordier# This software is provided "AS IS" and without any express or 1139165Srnordier# implied warranties, including, without limitation, the implied 1239165Srnordier# warranties of merchantability and fitness for a particular 1339165Srnordier# purpose. 1439165Srnordier# 1539165Srnordier 1650477Speter# $FreeBSD: stable/11/stand/i386/btx/lib/btxcsu.S 235154 2012-05-09 08:04:29Z avg $ 1739165Srnordier 18235154Savg#include <bootargs.h> 19235154Savg 2039165Srnordier# 2139165Srnordier# BTX C startup code (ELF). 2239165Srnordier# 2339165Srnordier 2439165Srnordier# 2539165Srnordier# Globals. 2639165Srnordier# 2739165Srnordier .global _start 2839165Srnordier# 2939165Srnordier# Client entry point. 3039165Srnordier# 31133154Skan_start: cld 32133154Skan pushl %eax 33133154Skan movl $_edata,%edi 34133154Skan movl $_end,%ecx 35133154Skan subl %edi, %ecx 36133154Skan xorb %al, %al 37133154Skan rep 38133154Skan stosb 39133154Skan popl __base 4039962Srnordier movl %esp,%eax # Set 4139962Srnordier addl $ARGADJ,%eax # argument 4239962Srnordier movl %eax,__args # pointer 4339165Srnordier call main # Invoke client main() 4439165Srnordier call exit # Invoke client exit() 4539165Srnordier# 4639165Srnordier# Data. 4739165Srnordier# 4839165Srnordier .comm __base,4 # Client base address 4939165Srnordier .comm __args,4 # Client arguments 50