1/*
2 * Copyright 2007, Travis Geiselbrecht. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _KERNEL_COMMPAGE_H
6#define _KERNEL_COMMPAGE_H
7
8#include <image.h>
9#include <SupportDefs.h>
10
11#include <commpage_defs.h>
12
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18status_t	commpage_init(void);
19status_t	commpage_init_post_cpus(void);
20void*		allocate_commpage_entry(int entry, size_t size);
21addr_t		fill_commpage_entry(int entry, const void* copyFrom, size_t size);
22image_id	get_commpage_image();
23area_id		clone_commpage_area(team_id team, void** address);
24
25// implemented in the architecture specific part
26status_t	arch_commpage_init(void);
27status_t	arch_commpage_init_post_cpus(void);
28
29#ifdef __cplusplus
30}	// extern "C"
31#endif
32
33#endif	/* _KERNEL_COMMPAGE_H */
34