1/*
2 * Copyright 2005, Ingo Weinhold, bonefish@users.sf.net. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6// kernel-internal interface for the messaging service
7
8#ifndef MESSAGING_H
9#define MESSAGING_H
10
11#include <OS.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17typedef struct messaging_target {
18	port_id	port;
19	int32	token;
20} messaging_target;
21
22status_t init_messaging_service();
23
24status_t send_message(const void *message, int32 messageSize,
25	const messaging_target *targets, int32 targetCount);
26
27// syscalls
28area_id _user_register_messaging_service(sem_id lockingSem, sem_id counterSem);
29status_t _user_unregister_messaging_service();
30
31#ifdef __cplusplus
32}
33#endif
34
35
36// C++ only
37
38#ifdef __cplusplus
39
40namespace BPrivate {
41	class KMessage;
42}
43
44status_t send_message(const BPrivate::KMessage *message,
45	const messaging_target *targets,
46	int32 targetCount);
47
48#endif	// __cplusplus
49
50#endif	// MESSAGING_H
51