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:
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user