1
0
mirror of https://github.com/open-simh/simh.git synced 2026-05-03 22:58:53 +00:00

slirp: Integrate debugging support with simh debug output.

simh debug integration is only done during simh builds, the original QEMU debug functionality is preserved.  The slirp debug flags can be set by the environment variable SLIRP_DEBUG.  Mask values 1 - CALL, 2 - MISC, 3 - ERROR.
This commit is contained in:
Mark Pizzolato
2015-10-16 03:43:27 -07:00
parent 6da2be7d7b
commit 79f50fa6bb
16 changed files with 105 additions and 81 deletions

View File

@@ -112,32 +112,27 @@ void pstrcpy(char *buf, int buf_size, const char *str)
int qemu_socket(int domain, int type, int protocol)
{
fprintf (stderr, "qemu_socket()\r\n");
return socket (domain, type, protocol);
}
int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{
fprintf (stderr, "qemu_accept()\r\n");
return accept (s, addr, addrlen);
}
int qemu_setsockopt (int s, int level, int optname, void *optval, int optlen)
{
fprintf (stderr, "qemu_setsockopt()\r\n");
return setsockopt ((SOCKET)s, level, optname, (char *)optval, optlen);
}
int qemu_recv (int s, void *buf, size_t len, int flags)
{
fprintf (stderr, "qemu_recv()\r\n");
return recv ((SOCKET)s, buf, len, flags);
}
int socket_set_nodelay(int fd)
{
int v = 1;
fprintf (stderr, "socket_set_nodelay()\r\n");
return setsockopt((SOCKET)fd, IPPROTO_TCP, TCP_NODELAY, (char *)&v, sizeof(v));
}

View File

@@ -148,6 +148,9 @@ struct sim_slirp {
uint32 dbit;
};
DEVICE *slirp_dptr;
uint32 slirp_dbit;
SLIRP *sim_slirp_open (const char *args, void *opaque, packet_callback callback, DEVICE *dptr, uint32 dbit)
{
SLIRP *slirp = (SLIRP *)g_malloc0(sizeof(*slirp));
@@ -157,6 +160,8 @@ char *cptr;
char tbuf[CBUFSIZE], gbuf[CBUFSIZE];
int err;
slirp_dptr = dptr;
slirp_dbit = dbit;
slirp->args = (char *)g_malloc0(1 + strlen(args));
strcpy (slirp->args, args);
slirp->opaque = opaque;
@@ -454,7 +459,7 @@ for (i = 0; i < pollfds->len; i++) {
FD_SET(fd, wfds);
nfds = MAX(nfds, fd);
}
if (events & G_IO_PRI) {
if (events & (G_IO_PRI | G_IO_HUP | G_IO_ERR)) {
FD_SET(fd, xfds);
nfds = MAX(nfds, fd);
}