xref: /openbmc/qemu/bsd-user/arm/target_arch_vmparam.h (revision ec11dc41eec5142b4776db1296972c6323ba5847)
1dacfdf3bSWarner Losh /*
2dacfdf3bSWarner Losh  *  arm VM parameters definitions
3dacfdf3bSWarner Losh  *
4dacfdf3bSWarner Losh  *  Copyright (c) 2013 Stacey D. Son
5dacfdf3bSWarner Losh  *
6dacfdf3bSWarner Losh  *  This program is free software; you can redistribute it and/or modify
7dacfdf3bSWarner Losh  *  it under the terms of the GNU General Public License as published by
8dacfdf3bSWarner Losh  *  the Free Software Foundation; either version 2 of the License, or
9dacfdf3bSWarner Losh  *  (at your option) any later version.
10dacfdf3bSWarner Losh  *
11dacfdf3bSWarner Losh  *  This program is distributed in the hope that it will be useful,
12dacfdf3bSWarner Losh  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13dacfdf3bSWarner Losh  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14dacfdf3bSWarner Losh  *  GNU General Public License for more details.
15dacfdf3bSWarner Losh  *
16dacfdf3bSWarner Losh  *  You should have received a copy of the GNU General Public License
17dacfdf3bSWarner Losh  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
18dacfdf3bSWarner Losh  */
19*9c092804SMarkus Armbruster 
20*9c092804SMarkus Armbruster #ifndef TARGET_ARCH_VMPARAM_H
21*9c092804SMarkus Armbruster #define TARGET_ARCH_VMPARAM_H
22dacfdf3bSWarner Losh 
23dacfdf3bSWarner Losh #include "cpu.h"
24dacfdf3bSWarner Losh 
25dacfdf3bSWarner Losh /* compare to sys/arm/include/vmparam.h */
26dacfdf3bSWarner Losh #define TARGET_MAXTSIZ      (64 * MiB)           /* max text size */
27dacfdf3bSWarner Losh #define TARGET_DFLDSIZ      (128 * MiB)          /* initial data size limit */
28dacfdf3bSWarner Losh #define TARGET_MAXDSIZ      (512 * MiB)          /* max data size */
29dacfdf3bSWarner Losh #define TARGET_DFLSSIZ      (4 * MiB)            /* initial stack size limit */
30dacfdf3bSWarner Losh #define TARGET_MAXSSIZ      (64 * MiB)           /* max stack size */
31dacfdf3bSWarner Losh #define TARGET_SGROWSIZ     (128 * KiB)          /* amount to grow stack */
32dacfdf3bSWarner Losh 
33dacfdf3bSWarner Losh #define TARGET_RESERVED_VA  0xf7000000
34dacfdf3bSWarner Losh 
35dacfdf3bSWarner Losh                 /* KERNBASE - 512 MB */
36dacfdf3bSWarner Losh #define TARGET_VM_MAXUSER_ADDRESS   (0xc0000000 - (512 * MiB))
37dacfdf3bSWarner Losh #define TARGET_USRSTACK             TARGET_VM_MAXUSER_ADDRESS
38dacfdf3bSWarner Losh 
get_sp_from_cpustate(CPUARMState * state)39dacfdf3bSWarner Losh static inline abi_ulong get_sp_from_cpustate(CPUARMState *state)
40dacfdf3bSWarner Losh {
41dacfdf3bSWarner Losh     return state->regs[13]; /* sp */
42dacfdf3bSWarner Losh }
43dacfdf3bSWarner Losh 
set_second_rval(CPUARMState * state,abi_ulong retval2)44dacfdf3bSWarner Losh static inline void set_second_rval(CPUARMState *state, abi_ulong retval2)
45dacfdf3bSWarner Losh {
46dacfdf3bSWarner Losh     state->regs[1] = retval2;
47dacfdf3bSWarner Losh }
48dacfdf3bSWarner Losh 
49*9c092804SMarkus Armbruster #endif /* TARGET_ARCH_VMPARAM_H */
50