From owner-svn-src-projects@FreeBSD.ORG Sat Oct 27 22:58:02 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E4BC2732; Sat, 27 Oct 2012 22:58:02 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B422A8FC08; Sat, 27 Oct 2012 22:58:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q9RMw2jG076001; Sat, 27 Oct 2012 22:58:02 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q9RMw21q075999; Sat, 27 Oct 2012 22:58:02 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201210272258.q9RMw21q075999@svn.freebsd.org> From: Neel Natu Date: Sat, 27 Oct 2012 22:58:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r242195 - projects/bhyve/usr.sbin/bhyve X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Oct 2012 22:58:03 -0000 Author: neel Date: Sat Oct 27 22:58:02 2012 New Revision: 242195 URL: http://svn.freebsd.org/changeset/base/242195 Log: Present the bvm dbgport to the guest only when explicitly requested via the "-g" command line option. Suggested by: grehan Obtained from: NetApp Modified: projects/bhyve/usr.sbin/bhyve/dbgport.c Modified: projects/bhyve/usr.sbin/bhyve/dbgport.c ============================================================================== --- projects/bhyve/usr.sbin/bhyve/dbgport.c Sat Oct 27 22:54:23 2012 (r242194) +++ projects/bhyve/usr.sbin/bhyve/dbgport.c Sat Oct 27 22:58:02 2012 (r242195) @@ -44,37 +44,12 @@ __FBSDID("$FreeBSD$"); #include "dbgport.h" #define BVM_DBG_PORT 0x224 +#define BVM_DBG_SIG ('B' << 8 | 'V') static int listen_fd, conn_fd; static struct sockaddr_in sin; -void -init_dbgport(int sport) -{ - conn_fd = -1; - - if ((listen_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - perror("socket"); - exit(1); - } - - sin.sin_len = sizeof(sin); - sin.sin_family = AF_INET; - sin.sin_addr.s_addr = htonl(INADDR_ANY); - sin.sin_port = htons(sport); - - if (bind(listen_fd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { - perror("bind"); - exit(1); - } - - if (listen(listen_fd, 1) < 0) { - perror("listen"); - exit(1); - } -} - static int dbg_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes, uint32_t *eax, void *arg) @@ -82,6 +57,11 @@ dbg_handler(struct vmctx *ctx, int vcpu, char ch; int nwritten, nread, printonce; + if (bytes == 2 && in) { + *eax = BVM_DBG_SIG; + return (0); + } + if (bytes != 4) return (-1); @@ -122,4 +102,37 @@ again: return (0); } -INOUT_PORT(dbg, BVM_DBG_PORT, IOPORT_F_INOUT, dbg_handler); +static struct inout_port dbgport = { + "bvmdbg", + BVM_DBG_PORT, + IOPORT_F_INOUT, + dbg_handler +}; + +void +init_dbgport(int sport) +{ + conn_fd = -1; + + if ((listen_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + perror("socket"); + exit(1); + } + + sin.sin_len = sizeof(sin); + sin.sin_family = AF_INET; + sin.sin_addr.s_addr = htonl(INADDR_ANY); + sin.sin_port = htons(sport); + + if (bind(listen_fd, (struct sockaddr *)&sin, sizeof(sin)) < 0) { + perror("bind"); + exit(1); + } + + if (listen(listen_fd, 1) < 0) { + perror("listen"); + exit(1); + } + + register_inout(&dbgport); +}