kernel: add header files
This commit is contained in:
53
include/kernel/channel.h
Normal file
53
include/kernel/channel.h
Normal file
@@ -0,0 +1,53 @@
|
||||
#ifndef KERNEL_CHANNEL_H_
|
||||
#define KERNEL_CHANNEL_H_
|
||||
|
||||
#include <kernel/object.h>
|
||||
#include <kernel/sched.h>
|
||||
|
||||
struct kmsg;
|
||||
|
||||
struct channel {
|
||||
struct object c_base;
|
||||
unsigned int c_id;
|
||||
struct waitqueue c_wq;
|
||||
struct btree c_msg;
|
||||
struct btree_node c_node;
|
||||
};
|
||||
|
||||
extern kern_status_t channel_type_init(void);
|
||||
|
||||
extern struct channel *channel_create(void);
|
||||
|
||||
extern kern_status_t channel_enqueue_msg(
|
||||
struct channel *channel,
|
||||
struct kmsg *msg);
|
||||
|
||||
extern kern_status_t channel_recv_msg(
|
||||
struct channel *channel,
|
||||
struct msg *out_msg,
|
||||
msgid_t *out_id,
|
||||
unsigned long *irq_flags);
|
||||
extern kern_status_t channel_reply_msg(
|
||||
struct channel *channel,
|
||||
msgid_t id,
|
||||
const struct msg *resp,
|
||||
unsigned long *irq_flags);
|
||||
|
||||
extern kern_status_t channel_read_msg(
|
||||
struct channel *channel,
|
||||
msgid_t msg,
|
||||
size_t offset,
|
||||
void *buf,
|
||||
size_t len,
|
||||
size_t *nr_read);
|
||||
extern kern_status_t channel_write_msg(
|
||||
struct channel *channel,
|
||||
msgid_t msg,
|
||||
size_t offset,
|
||||
const void *buf,
|
||||
size_t len,
|
||||
size_t *nr_written);
|
||||
|
||||
DEFINE_OBJECT_LOCK_FUNCTION(channel, c_base)
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user