Skip to content
Snippets Groups Projects
Commit 136555ed authored by Guy Zana's avatar Guy Zana
Browse files

Port uipc_domain

parent d6eba3a1
No related branches found
No related tags found
No related merge requests found
......@@ -10,3 +10,8 @@ int _callout_stop_safe(struct callout *a, int b)
{
return 1;
}
void callout_init(struct callout *a, int v)
{
}
#include <porting/netport.h>
#include <errno.h>
#include <memory.h>
#include <porting/netport.h>
#include <sys/socket.h>
#include <net/if_var.h>
int copyin(const void *uaddr, void *kaddr, size_t len)
{
memcpy(kaddr, uaddr, len);
......@@ -30,3 +34,145 @@ int priv_check(struct thread *td, int priv)
{
return 1;
}
/*
* Some routines that return EOPNOTSUPP for entry points that are not
* supported by a protocol. Fill in as needed.
*/
int
pru_accept_notsupp(struct socket *so, struct sockaddr **nam)
{
return EOPNOTSUPP;
}
int
pru_attach_notsupp(struct socket *so, int proto, struct thread *td)
{
return EOPNOTSUPP;
}
int
pru_bind_notsupp(struct socket *so, struct sockaddr *nam, struct thread *td)
{
return EOPNOTSUPP;
}
int
pru_connect_notsupp(struct socket *so, struct sockaddr *nam, struct thread *td)
{
return EOPNOTSUPP;
}
int
pru_connect2_notsupp(struct socket *so1, struct socket *so2)
{
return EOPNOTSUPP;
}
int
pru_control_notsupp(struct socket *so, u_long cmd, caddr_t data,
struct ifnet *ifp, struct thread *td)
{
return EOPNOTSUPP;
}
int
pru_disconnect_notsupp(struct socket *so)
{
return EOPNOTSUPP;
}
int
pru_listen_notsupp(struct socket *so, int backlog, struct thread *td)
{
return EOPNOTSUPP;
}
int
pru_peeraddr_notsupp(struct socket *so, struct sockaddr **nam)
{
return EOPNOTSUPP;
}
int
pru_rcvd_notsupp(struct socket *so, int flags)
{
return EOPNOTSUPP;
}
int
pru_rcvoob_notsupp(struct socket *so, struct mbuf *m, int flags)
{
return EOPNOTSUPP;
}
int
pru_send_notsupp(struct socket *so, int flags, struct mbuf *m,
struct sockaddr *addr, struct mbuf *control, struct thread *td)
{
return EOPNOTSUPP;
}
/*
* This isn't really a ``null'' operation, but it's the default one and
* doesn't do anything destructive.
*/
struct stat;
int
pru_sense_null(struct socket *so, struct stat *sb)
{
// sb->st_blksize = so->so_snd.sb_hiwat;
return 0;
}
int
pru_shutdown_notsupp(struct socket *so)
{
return EOPNOTSUPP;
}
int
pru_sockaddr_notsupp(struct socket *so, struct sockaddr **nam)
{
return EOPNOTSUPP;
}
int
pru_sosend_notsupp(struct socket *so, struct sockaddr *addr, struct uio *uio,
struct mbuf *top, struct mbuf *control, int flags, struct thread *td)
{
return EOPNOTSUPP;
}
int
pru_soreceive_notsupp(struct socket *so, struct sockaddr **paddr,
struct uio *uio, struct mbuf **mp0, struct mbuf **controlp, int *flagsp)
{
return EOPNOTSUPP;
}
int
pru_sopoll_notsupp(struct socket *so, int events, struct ucred *cred,
struct thread *td)
{
return EOPNOTSUPP;
}
......@@ -8,6 +8,11 @@
#include <sys/types.h>
#include <sys/queue.h>
/* Defines how many ticks are in 1 minute */
#ifndef hz
#define hz (1)
#endif
#define __NO_STRICT_ALIGNMENT
/* FIXME: struct socket is here for compilation purposes only */
......
......@@ -29,8 +29,11 @@
* @(#)uipc_domain.c 8.2 (Berkeley) 10/18/93
*/
#include <errno.h>
#include <porting/netport.h>
#include <porting/uma_stub.h>
#include <porting/callout.h>
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/socket.h>
......@@ -38,15 +41,9 @@ __FBSDID("$FreeBSD$");
#include <sys/domain.h>
#include <sys/eventhandler.h>
#include <sys/mbuf.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/socketvar.h>
#include <sys/systm.h>
#include <net/vnet.h>
#include <vm/uma.h>
/*
* System initialization
......@@ -60,12 +57,17 @@ __FBSDID("$FreeBSD$");
* See DOMAIN_SET(9) for details on its use.
*/
#if 0
static void domaininit(void *);
SYSINIT(domain, SI_SUB_PROTO_DOMAININIT, SI_ORDER_ANY, domaininit, NULL);
static void domainfinalize(void *);
SYSINIT(domainfin, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_FIRST, domainfinalize,
NULL);
#else
void domaininit(void *);
void domainfinalize(void *);
#endif
static struct callout pffast_callout;
static struct callout pfslow_callout;
......@@ -76,7 +78,8 @@ static void pfslowtimo(void *);
struct domain *domains; /* registered protocol domains */
int domain_init_status = 0;
static struct mtx dom_mtx; /* domain list lock */
MTX_SYSINIT(domain, &dom_mtx, "domain list", MTX_DEF);
/* FIXME: OSv: initialize this mutex properly... */
// MTX_SYSINIT(domain, &dom_mtx, "domain list", MTX_DEF);
/*
* Dummy protocol specific user requests function pointer array.
......@@ -149,9 +152,10 @@ protosw_init(struct protosw *pr)
DEFAULT(pu->pru_sense, pru_sense_null);
DEFAULT(pu->pru_shutdown, pru_shutdown_notsupp);
DEFAULT(pu->pru_sockaddr, pru_sockaddr_notsupp);
DEFAULT(pu->pru_sosend, sosend_generic);
DEFAULT(pu->pru_soreceive, soreceive_generic);
DEFAULT(pu->pru_sopoll, sopoll_generic);
/* FIXME: OSv: uncomment this */
// DEFAULT(pu->pru_sosend, sosend_generic);
// DEFAULT(pu->pru_soreceive, soreceive_generic);
// DEFAULT(pu->pru_sopoll, sopoll_generic);
#undef DEFAULT
if (pr->pr_init)
(*pr->pr_init)();
......@@ -239,6 +243,10 @@ domain_add(void *data)
mtx_unlock(&dom_mtx);
}
/* FIXME: OSv: this was initially declared in uipc_socket */
uma_zone_t socket_zone;
int maxsockets = 256;
static void
socket_zone_change(void *tag)
{
......@@ -247,7 +255,7 @@ socket_zone_change(void *tag)
}
/* ARGSUSED*/
static void
void
domaininit(void *dummy)
{
......@@ -274,7 +282,7 @@ domaininit(void *dummy)
}
/* ARGSUSED*/
static void
void
domainfinalize(void *dummy)
{
......
......@@ -34,6 +34,7 @@
#define _NET_IF_VAR_H_
#include <osv/mutex.h>
#include <net/if.h>
/*
* Structures defining a network interface, providing a packet
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment