2002-07-09 16:24:59 +04:00
|
|
|
/* ports.h
|
|
|
|
*
|
|
|
|
* Definitions here are for kernel use only. For the actual
|
|
|
|
* definitions of port functions, please look at OS.h
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _KERNEL_PORT_H
|
|
|
|
#define _KERNEL_PORT_H
|
|
|
|
|
|
|
|
#include <thread.h>
|
|
|
|
|
|
|
|
#define PORT_FLAG_USE_USER_MEMCPY 0x80000000
|
|
|
|
|
|
|
|
int port_init(kernel_args *ka);
|
2002-08-03 04:41:27 +04:00
|
|
|
int delete_owned_ports(team_id owner);
|
2002-07-09 16:24:59 +04:00
|
|
|
|
|
|
|
// temp: test
|
|
|
|
void port_test(void);
|
|
|
|
int port_test_thread_func(void* arg);
|
|
|
|
|
|
|
|
// user-level API
|
|
|
|
port_id user_create_port(int32 queue_length, const char *name);
|
|
|
|
int user_close_port(port_id id);
|
|
|
|
int user_delete_port(port_id id);
|
|
|
|
port_id user_find_port(const char *port_name);
|
|
|
|
int user_get_port_info(port_id id, struct port_info *info);
|
2002-08-03 04:41:27 +04:00
|
|
|
int user_get_next_port_info(team_id team,
|
2002-07-09 16:24:59 +04:00
|
|
|
uint32 *cookie,
|
|
|
|
struct port_info *info);
|
|
|
|
ssize_t user_port_buffer_size_etc(port_id port,
|
|
|
|
uint32 flags,
|
|
|
|
bigtime_t timeout);
|
|
|
|
int32 user_port_count(port_id port);
|
|
|
|
ssize_t user_read_port_etc(port_id port,
|
|
|
|
int32 *msg_code,
|
|
|
|
void *msg_buffer,
|
|
|
|
size_t buffer_size,
|
|
|
|
uint32 flags,
|
|
|
|
bigtime_t timeout);
|
2002-08-03 04:41:27 +04:00
|
|
|
int user_set_port_owner(port_id port, team_id team);
|
2002-07-09 16:24:59 +04:00
|
|
|
int user_write_port_etc(port_id port,
|
|
|
|
int32 msg_code,
|
|
|
|
void *msg_buffer,
|
|
|
|
size_t buffer_size,
|
|
|
|
uint32 flags,
|
|
|
|
bigtime_t timeout);
|
|
|
|
|
|
|
|
#endif
|