genode/repos/base/src/include/base/internal/crt0.h
Norman Feske 28f5688dcf base: reduce size of initial stack from 32K to 4K
The initial stack is solely used to initialize the Genode environment
along with the application stack located in the stack area. It never
executes application code. Hence, we can make it small. To check that it
is not dimensioned too small, the patch introduces a sanity check right
before switching to the application stack.
2016-12-02 15:20:31 +01:00

47 lines
1.4 KiB
C

/*
* \brief Startup code and program image specifica
* \author Christian Helmuth
* \date 2006-05-16
*/
/*
* Copyright (C) 2006-2013 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _INCLUDE__BASE__CRT0_H_
#define _INCLUDE__BASE__CRT0_H_
/************************************
** Program image exported symbols **
************************************/
extern unsigned _prog_img_beg; /* begin of program image (link address) */
extern unsigned _prog_img_end; /* end of program image */
extern void (*_ctors_start)(); /* begin of constructor table */
extern void (*_ctors_end)(); /* end of constructor table */
extern void (*_dtors_start)(); /* begin of destructor table */
extern void (*_dtors_end)(); /* end of destructor table */
extern unsigned _start; /* program entry point */
extern unsigned char _initial_stack_base[];
/***************************************************
** Parameters for parent capability construction **
***************************************************/
/*
* The protection domain creator initializes the information about the parent
* capability prior the execution of the main thread. It corresponds to the
* '_parent_cap' symbol defined in 'src/ld/genode.ld'.
*/
extern unsigned long _parent_cap;
#endif /* _INCLUDE__BASE__CRT0_H_ */