From owner-svn-src-user@FreeBSD.ORG Tue Jun 26 11:01:13 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2798B106564A; Tue, 26 Jun 2012 11:01:13 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 130F28FC12; Tue, 26 Jun 2012 11:01:13 +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 q5QB1CM3036248; Tue, 26 Jun 2012 11:01:12 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q5QB1CWc036246; Tue, 26 Jun 2012 11:01:12 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201206261101.q5QB1CWc036246@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Tue, 26 Jun 2012 11:01:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r237599 - user/ae/bootcode/sys/boot/userboot/test X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Jun 2012 11:01:13 -0000 Author: ae Date: Tue Jun 26 11:01:12 2012 New Revision: 237599 URL: http://svn.freebsd.org/changeset/base/237599 Log: Implement diskioctl call in the userboot test programm. Modified: user/ae/bootcode/sys/boot/userboot/test/test.c Modified: user/ae/bootcode/sys/boot/userboot/test/test.c ============================================================================== --- user/ae/bootcode/sys/boot/userboot/test/test.c Tue Jun 26 11:00:34 2012 (r237598) +++ user/ae/bootcode/sys/boot/userboot/test/test.c Tue Jun 26 11:01:12 2012 (r237599) @@ -26,6 +26,8 @@ * $FreeBSD$ */ +#include +#include #include #include #include @@ -251,6 +253,29 @@ test_diskread(void *arg, int unit, uint6 return (0); } +int +test_diskioctl(void *arg, int unit, u_long cmd, void *data) +{ + struct stat sb; + + if (unit != 0 || disk_fd == -1) + return (EBADF); + switch (cmd) { + case DIOCGSECTORSIZE: + *(u_int *)data = 512; + break; + case DIOCGMEDIASIZE: + if (fstat(disk_fd, &sb) == 0) + *(off_t *)data = sb.st_size; + else + return (ENOTTY); + break; + default: + return (ENOTTY); + }; + return (0); +} + /* * Guest virtual machine i/o * @@ -353,6 +378,7 @@ struct loader_callbacks_v1 cb = { .stat = test_stat, .diskread = test_diskread, + .diskioctl = test_diskioctl, .copyin = test_copyin, .copyout = test_copyout,