diff --git a/headers/os/drivers/KernelExport.h b/headers/os/drivers/KernelExport.h index 9a70775fd1..bd5c799d4c 100644 --- a/headers/os/drivers/KernelExport.h +++ b/headers/os/drivers/KernelExport.h @@ -191,6 +191,8 @@ typedef int (*debugger_command_hook)(int argc, char **argv); extern int add_debugger_command(char *name, debugger_command_hook hook, char *help); extern int remove_debugger_command(char *name, debugger_command_hook hook); +extern status_t load_driver_symbols(char *driver_name); + /*-------------------------------------------------------------*/ /* misc */ diff --git a/headers/posix/net/if.h b/headers/posix/net/if.h index 51b7130e83..2342728ee8 100644 --- a/headers/posix/net/if.h +++ b/headers/posix/net/if.h @@ -250,28 +250,26 @@ struct ifa_msghdr { int ifam_metric; /* value of ifa_metric */ }; -#ifdef _KERNEL_MODE - /* function declaration */ - struct ifq *start_ifq(void); - void stop_ifq(struct ifq *); - struct ifnet *get_interfaces(void); - struct ifnet *ifunit(char *name); - struct ifaddr *ifa_ifwithaddr(struct sockaddr *); - struct ifaddr *ifa_ifwithaf(int); - struct ifaddr *ifa_ifwithdstaddr(struct sockaddr *); - struct ifaddr *ifa_ifwithnet(struct sockaddr *); - struct ifaddr *ifa_ifwithroute(int, struct sockaddr *, - struct sockaddr *); - struct ifaddr *ifaof_ifpforaddr(struct sockaddr *, struct ifnet *); - void ifafree(struct ifaddr *); +/* function declaration */ +struct ifq *start_ifq(void); +void stop_ifq(struct ifq *); +struct ifnet *get_interfaces(void); +struct ifnet *ifunit(char *name); +struct ifaddr *ifa_ifwithaddr(struct sockaddr *); +struct ifaddr *ifa_ifwithaf(int); +struct ifaddr *ifa_ifwithdstaddr(struct sockaddr *); +struct ifaddr *ifa_ifwithnet(struct sockaddr *); +struct ifaddr *ifa_ifwithroute(int, struct sockaddr *, + struct sockaddr *); +struct ifaddr *ifaof_ifpforaddr(struct sockaddr *, struct ifnet *); +void ifafree(struct ifaddr *); - void if_attach(struct ifnet *ifp); - void if_detach(struct ifnet *ifp); +void if_attach(struct ifnet *ifp); +void if_detach(struct ifnet *ifp); - int ifioctl(struct socket *so, ulong cmd, caddr_t data); - int ifconf(int cmd, char *data); - void if_init(void); -#endif +int ifioctl(struct socket *so, ulong cmd, caddr_t data); +int ifconf(int cmd, char *data); +void if_init(void); #ifdef __cplusplus } diff --git a/headers/posix/netinet/in.h b/headers/posix/netinet/in.h index 4a384f6886..ca46a886c6 100644 --- a/headers/posix/netinet/in.h +++ b/headers/posix/netinet/in.h @@ -99,11 +99,7 @@ struct sockaddr_in { #define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */ #define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */ -#ifdef _KERNEL_MODE #define __IPADDR(x) ((uint32) htonl((uint32)(x))) -#else -#define __IPADDR(x) ((uint32)(x)) -#endif #define INADDR_ANY __IPADDR(0x00000000) #define INADDR_LOOPBACK __IPADDR(0x7f000001) @@ -116,9 +112,7 @@ struct sockaddr_in { #define IN_LOOPBACKNET 127 /* official! */ -#ifndef _KERNEL_MODE #define INADDR_NONE __IPADDR(0xffffffff) -#endif #define IN_CLASSA(i) (((uint32)(i) & __IPADDR(0x80000000)) == \ __IPADDR(0x00000000)) @@ -154,25 +148,22 @@ struct sockaddr_in { #define IP_MAX_MEMBERSHIPS 20 -#ifdef _KERNEL_MODE - /* some helpful macro's :) */ - #define in_hosteq(s,t) ((s).s_addr == (t).s_addr) - #define in_nullhost(x) ((x).s_addr == INADDR_ANY) - #define satosin(sa) ((struct sockaddr_in *)(sa)) - #define sintosa(sin) ((struct sockaddr *)(sin)) +/* some helpful macro's :) */ +#define in_hosteq(s,t) ((s).s_addr == (t).s_addr) +#define in_nullhost(x) ((x).s_addr == INADDR_ANY) +#define satosin(sa) ((struct sockaddr_in *)(sa)) +#define sintosa(sin) ((struct sockaddr *)(sin)) - struct ifnet; // forward declaration +struct ifnet; // forward declaration - /* Prototypes... */ - int in_broadcast (struct in_addr, struct ifnet *); - int in_canforward (struct in_addr); - int in_localaddr (struct in_addr); - void in_socktrim (struct sockaddr_in*); +/* Prototypes... */ +int in_broadcast (struct in_addr, struct ifnet *); +int in_canforward (struct in_addr); +int in_localaddr (struct in_addr); +void in_socktrim (struct sockaddr_in*); /* uint16 in_cksum (struct mbuf *, int); */ - uint16 in_cksum(struct mbuf *m, int len, int off); +uint16 in_cksum(struct mbuf *m, int len, int off); -#endif /* _KERNEL_MODE */ - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/headers/posix/netinet/in_pcb.h b/headers/posix/netinet/in_pcb.h index fd57de620f..4b0e7be659 100644 --- a/headers/posix/netinet/in_pcb.h +++ b/headers/posix/netinet/in_pcb.h @@ -46,28 +46,26 @@ struct inpcb { struct route inp_route; /* the route to host */ }; -#ifdef _KERNEL_MODE - int in_pcbinit (void); - int in_pcballoc (struct socket *, struct inpcb *); - int in_pcbbind (struct inpcb *, struct mbuf *); - int in_pcbconnect (struct inpcb *, struct mbuf *); - void in_pcbdetach (struct inpcb *); - int in_pcbdisconnect (struct inpcb *); - void in_losing (struct inpcb *); - void in_setpeeraddr (struct inpcb *, struct mbuf *); - void in_setsockaddr (struct inpcb *, struct mbuf *); +int in_pcbinit (void); +int in_pcballoc (struct socket *, struct inpcb *); +int in_pcbbind (struct inpcb *, struct mbuf *); +int in_pcbconnect (struct inpcb *, struct mbuf *); +void in_pcbdetach (struct inpcb *); +int in_pcbdisconnect (struct inpcb *); +void in_losing (struct inpcb *); +void in_setpeeraddr (struct inpcb *, struct mbuf *); +void in_setsockaddr (struct inpcb *, struct mbuf *); - struct inpcb *in_pcblookup(struct inpcb *head, struct in_addr faddr, - uint16 fport_a, struct in_addr laddr, - uint16 lport_a, int flags); - struct rtentry *in_pcbrtentry (struct inpcb *); - void in_pcbnotify (struct inpcb *, struct sockaddr *, - uint16, struct in_addr, uint16, - int, void (*)(struct inpcb *, int)); +struct inpcb *in_pcblookup(struct inpcb *head, struct in_addr faddr, + uint16 fport_a, struct in_addr laddr, + uint16 lport_a, int flags); +struct rtentry *in_pcbrtentry (struct inpcb *); +void in_pcbnotify (struct inpcb *, struct sockaddr *, + uint16, struct in_addr, uint16, + int, void (*)(struct inpcb *, int)); - /* helpful macro's */ - #define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb) -#endif /* _KERNEL_MODE */ +/* helpful macro's */ +#define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb) #endif /* _NETINET_INPCB_H */ diff --git a/headers/posix/netinet/in_systm.h b/headers/posix/netinet/in_systm.h index 941a472d8d..e8ea6cda47 100644 --- a/headers/posix/netinet/in_systm.h +++ b/headers/posix/netinet/in_systm.h @@ -54,9 +54,7 @@ typedef uint32 n_long; /* long as received from the net */ typedef uint32 n_time; /* ms since 00:00 GMT, byte rev */ -#ifdef _KERNEL_MODE #define iptime() (htonl((uint32)real_time_clock_usecs())) -#endif /* _KERNEL_MODE */ #endif /* NETINET_IN_SYSTM_H */ diff --git a/headers/posix/netinet/in_var.h b/headers/posix/netinet/in_var.h index 1d331206cf..d42741edb7 100644 --- a/headers/posix/netinet/in_var.h +++ b/headers/posix/netinet/in_var.h @@ -52,9 +52,7 @@ struct in_multi { * return a pointer to the addr as a sockaddr_in. */ -#ifdef _KERNEL_MODE - - #define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr)) +#define IA_SIN(ia) (&(((struct in_ifaddr *)(ia))->ia_addr)) // extern struct in_ifaddr *in_ifaddr; @@ -63,6 +61,6 @@ struct in_multi { int scrub); int inetctlerr(int cmd); struct in_ifaddr *get_primary_addr(void); -#endif #endif /* NETINET_IN_VAR_H */ + diff --git a/headers/posix/sys/domain.h b/headers/posix/sys/domain.h index 8df8697d45..20919dd969 100644 --- a/headers/posix/sys/domain.h +++ b/headers/posix/sys/domain.h @@ -5,6 +5,10 @@ #ifndef _SYS_DOMAIN_H #define _SYS_DOMAIN_H +#ifdef __cplusplus +extern "C" { +#endif + struct domain { int dom_family; /* AF_INET and so on */ char *dom_name; @@ -19,11 +23,13 @@ struct domain { int dom_maxrtkey; }; -#ifdef _KERNEL_MODE - struct domain *domains; +extern struct domain *domains; - void add_domain (struct domain *dom, int fam); - void remove_domain (int fam); -#endif /* _KERNEL_MODE */ +void add_domain (struct domain *dom, int fam); +void remove_domain (int fam); + +#ifdef __cplusplus +} +#endif #endif /* _SYS_DOMAIN_H */ diff --git a/headers/posix/sys/uio.h b/headers/posix/sys/uio.h index d8642a36c0..5f24dd2ae8 100644 --- a/headers/posix/sys/uio.h +++ b/headers/posix/sys/uio.h @@ -11,7 +11,6 @@ typedef struct iovec { } iovec; -#ifdef _KERNEL_MODE enum uio_rw { UIO_READ, UIO_WRITE }; /* Segment flag values. */ @@ -31,7 +30,6 @@ struct uio { }; int uiomove(char *cp, int n, struct uio *uio); -#endif ssize_t readv(int fd, const struct iovec *vector, size_t count); ssize_t readv_pos(int fd, off_t pos, const struct iovec *vec, size_t count); diff --git a/src/add-ons/kernel/network/core/core.c b/src/add-ons/kernel/network/core/core.c index af64f016e9..81d0f5a21e 100644 --- a/src/add-ons/kernel/network/core/core.c +++ b/src/add-ons/kernel/network/core/core.c @@ -59,13 +59,16 @@ status_t std_ops(int32 op, ...); static int start_stack(void); static int stop_stack(void); + static void add_protosw(struct protosw *[], int layer); static struct net_module *module_list = NULL; + /* Wider scoped prototypes */ int net_sysctl(int *name, uint namelen, void *oldp, size_t *oldlenp, void *newp, size_t newlen); struct protosw * protocols; +struct domain *domains = NULL; struct core_module_info core_info = { { diff --git a/src/add-ons/kernel/network/core/socket.c b/src/add-ons/kernel/network/core/socket.c index 9af4f2a498..f4241e3782 100644 --- a/src/add-ons/kernel/network/core/socket.c +++ b/src/add-ons/kernel/network/core/socket.c @@ -36,7 +36,6 @@ static int sosend(struct socket *so, struct mbuf *addr, struct uio *uio, static int soreceive (struct socket *so, struct mbuf **paddr, struct uio *uio, struct mbuf **mp0, struct mbuf **controlp, int *flagsp); - /* Static global objects... */ static pool_ctl *spool; static benaphore sockets_lock; diff --git a/src/servers/input/Jamfile b/src/servers/input/Jamfile index 5cfc510c48..661d99cabb 100644 --- a/src/servers/input/Jamfile +++ b/src/servers/input/Jamfile @@ -1,5 +1,11 @@ SubDir OBOS_TOP src servers input ; +# AddResources +# input_server +# : +# input_server.rsrc +# ; + Server input_server : InputServer.cpp InputServerDevice.cpp