Now includes sem.h (since it needs the private create_sem_etc() call).

Cleaned up the source a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1378 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2002-10-05 01:20:39 +00:00
parent c321cf4929
commit 68687d6163

View File

@ -6,6 +6,7 @@
#include <OS.h>
#include <port.h>
#include <sem.h>
#include <kernel.h>
#include <arch/int.h>
#include <debug.h>
@ -17,6 +18,7 @@
#include <string.h>
#include <stdlib.h>
struct port_msg {
int msg_code;
cbuf* data_cbuf;
@ -276,6 +278,7 @@ out:
return retval;
}
status_t
close_port(port_id id)
{
@ -308,6 +311,7 @@ close_port(port_id id)
return B_NO_ERROR;
}
status_t
delete_port(port_id id)
{
@ -366,6 +370,7 @@ delete_port(port_id id)
return B_NO_ERROR;
}
port_id
find_port(const char *port_name)
{
@ -400,6 +405,7 @@ find_port(const char *port_name)
return ret_val;
}
status_t
_get_port_info(port_id id, port_info *info, size_t size)
{
@ -440,9 +446,9 @@ _get_port_info(port_id id, port_info *info, size_t size)
return B_NO_ERROR;
}
status_t
_get_next_port_info(team_id team, int32 *cookie, struct port_info *info,
size_t size)
_get_next_port_info(team_id team, int32 *cookie, struct port_info *info, size_t size)
{
int state;
int slot;
@ -450,7 +456,7 @@ _get_next_port_info(team_id team, int32 *cookie, struct port_info *info,
if (ports_active == false)
return B_BAD_PORT_ID;
if (cookie == NULL)
return EINVAL;
return B_BAD_VALUE;
if (*cookie == NULL) {
// return first found
@ -495,16 +501,16 @@ _get_next_port_info(team_id team, int32 *cookie, struct port_info *info,
return B_NO_ERROR;
}
ssize_t
port_buffer_size(port_id id)
{
return port_buffer_size_etc(id, 0, 0);
}
ssize_t
port_buffer_size_etc(port_id id,
uint32 flags,
bigtime_t timeout)
port_buffer_size_etc(port_id id, uint32 flags, bigtime_t timeout)
{
int slot;
int res;
@ -570,6 +576,7 @@ port_buffer_size_etc(port_id id,
return len;
}
ssize_t
port_count(port_id id)
{
@ -606,22 +613,17 @@ port_count(port_id id)
return count;
}
status_t
read_port(port_id port,
int32 *msg_code,
void *msg_buffer,
size_t buffer_size)
read_port(port_id port, int32 *msg_code, void *msg_buffer, size_t buffer_size)
{
return read_port_etc(port, msg_code, msg_buffer, buffer_size, 0, 0);
}
status_t
read_port_etc(port_id id,
int32 *msg_code,
void *msg_buffer,
size_t buffer_size,
uint32 flags,
bigtime_t timeout)
read_port_etc(port_id id, int32 *msg_code, void *msg_buffer, size_t buffer_size,
uint32 flags, bigtime_t timeout)
{
int slot;
int state;
@ -736,6 +738,7 @@ read_port_etc(port_id id,
return siz;
}
status_t
set_port_owner(port_id id, team_id team)
{
@ -769,22 +772,17 @@ set_port_owner(port_id id, team_id team)
return B_NO_ERROR;
}
status_t
write_port(port_id id,
int32 msg_code,
const void *msg_buffer,
size_t buffer_size)
write_port(port_id id, int32 msg_code, const void *msg_buffer, size_t buffer_size)
{
return write_port_etc(id, msg_code, msg_buffer, buffer_size, 0, 0);
}
status_t
write_port_etc(port_id id,
int32 msg_code,
const void *msg_buffer,
size_t buffer_size,
uint32 flags,
bigtime_t timeout)
write_port_etc(port_id id, int32 msg_code, const void *msg_buffer,
size_t buffer_size, uint32 flags, bigtime_t timeout)
{
int slot;
int state;
@ -905,9 +903,12 @@ write_port_etc(port_id id,
return B_NO_ERROR;
}
/* this function cycles through the ports table, deleting all the ports that are owned by
the passed team_id */
int delete_owned_ports(team_id owner)
int
delete_owned_ports(team_id owner)
{
int state;
int i;
@ -947,7 +948,8 @@ int delete_owned_ports(team_id owner)
port_id test_p1, test_p2, test_p3, test_p4;
void port_test()
void
port_test()
{
char testdata[5];
thread_id t;
@ -1012,7 +1014,9 @@ void port_test()
}
int port_test_thread_func(void* arg)
int
port_test_thread_func(void* arg)
{
int32 msg_code;
int n;
@ -1036,11 +1040,14 @@ int port_test_thread_func(void* arg)
return 0;
}
// #pragma mark -
/*
* user level ports
*/
port_id user_create_port(int32 queue_length, const char *uname)
port_id
user_create_port(int32 queue_length, const char *uname)
{
if(uname != NULL) {
char name[SYS_MAX_OS_NAME_LEN];
@ -1060,17 +1067,23 @@ port_id user_create_port(int32 queue_length, const char *uname)
}
}
status_t user_close_port(port_id id)
status_t
user_close_port(port_id id)
{
return close_port(id);
}
status_t user_delete_port(port_id id)
status_t
user_delete_port(port_id id)
{
return delete_port(id);
}
port_id user_find_port(const char *port_name)
port_id
user_find_port(const char *port_name)
{
if (port_name != NULL) {
char name[SYS_MAX_OS_NAME_LEN];
@ -1090,7 +1103,9 @@ port_id user_find_port(const char *port_name)
}
}
status_t user_get_port_info(port_id id, struct port_info *uinfo)
status_t
user_get_port_info(port_id id, struct port_info *uinfo)
{
status_t res;
struct port_info info;
@ -1109,9 +1124,9 @@ status_t user_get_port_info(port_id id, struct port_info *uinfo)
return res;
}
status_t user_get_next_port_info(team_id uteam,
int32 *ucookie,
struct port_info *uinfo)
status_t
user_get_next_port_info(team_id uteam, int32 *ucookie, struct port_info *uinfo)
{
status_t res;
struct port_info info;
@ -1143,17 +1158,23 @@ status_t user_get_next_port_info(team_id uteam,
return res;
}
ssize_t user_port_buffer_size_etc(port_id port, uint32 flags, bigtime_t timeout)
ssize_t
user_port_buffer_size_etc(port_id port, uint32 flags, bigtime_t timeout)
{
return port_buffer_size_etc(port, flags | B_CAN_INTERRUPT, timeout);
}
ssize_t user_port_count(port_id port)
ssize_t
user_port_count(port_id port)
{
return port_count(port);
}
status_t user_read_port_etc(port_id uport, int32 *umsg_code, void *umsg_buffer,
status_t
user_read_port_etc(port_id uport, int32 *umsg_code, void *umsg_buffer,
size_t ubuffer_size, uint32 uflags, bigtime_t utimeout)
{
ssize_t res;
@ -1180,12 +1201,16 @@ status_t user_read_port_etc(port_id uport, int32 *umsg_code, void *umsg_buffer,
return res;
}
status_t user_set_port_owner(port_id port, team_id team)
status_t
user_set_port_owner(port_id port, team_id team)
{
return set_port_owner(port, team);
}
status_t user_write_port_etc(port_id uport, int32 umsg_code, void *umsg_buffer,
status_t
user_write_port_etc(port_id uport, int32 umsg_code, void *umsg_buffer,
size_t ubuffer_size, uint32 uflags, bigtime_t utimeout)
{
if (umsg_buffer == NULL)