genode/repos/base-sel4/src/core/include/core_cspace.h

58 lines
1.2 KiB
C++

/*
* \brief Core's CSpace layout definition
* \author Norman Feske
* \date 2015-05-06
*/
/*
* Copyright (C) 2015 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 _CORE__INCLUDE__CORE_CSPACE_H_
#define _CORE__INCLUDE__CORE_CSPACE_H_
namespace Genode { class Core_cspace; }
class Genode::Core_cspace
{
public:
/* CNode dimensions */
enum {
NUM_TOP_SEL_LOG2 = 12UL,
NUM_CORE_SEL_LOG2 = 14UL,
NUM_PHYS_SEL_LOG2 = 20UL,
NUM_CORE_PAD_SEL_LOG2 = 32UL - NUM_TOP_SEL_LOG2 - NUM_CORE_SEL_LOG2,
};
/* selectors for statically created CNodes */
enum Static_cnode_sel {
TOP_CNODE_SEL = 0xa00,
CORE_PAD_CNODE_SEL = 0xa01,
CORE_CNODE_SEL = 0xa02,
PHYS_CNODE_SEL = 0xa03,
UNTYPED_CNODE_SEL = 0xa04,
CORE_STATIC_SEL_END,
};
/* indices within top-level CNode */
enum Top_cnode_idx {
TOP_CNODE_CORE_IDX = 0,
/* XXX mark last index usable for PDs */
TOP_CNODE_UNTYPED_IDX = 0xffe, /* untyped memory pages */
TOP_CNODE_PHYS_IDX = 0xfff /* phyical page frames */
};
enum { CORE_VM_ID = 1 };
};
#endif /* _CORE__INCLUDE__CORE_CSPACE_H_ */