From owner-freebsd-current Sat Mar 4 22:24:22 2000 Delivered-To: freebsd-current@freebsd.org Received: from smtprch1.nortel.com (smtprch1.nortelnetworks.com [192.135.215.14]) by hub.freebsd.org (Postfix) with ESMTP id 860FE37B97D for ; Sat, 4 Mar 2000 22:24:14 -0800 (PST) (envelope-from atrens@nortelnetworks.com) Received: from zmers013 by smtprch1.nortel.com; Sun, 5 Mar 2000 00:24:15 -0600 Received: from hcarp00g.ca.nortel.com by zmers013; Sun, 5 Mar 2000 01:24:01 -0500 Received: from hcarp00g.ca.nortel.com (hcarp00g.ca.nortel.com [47.196.31.114]) by hcarp00g.ca.nortel.com (8.9.3/8.7.3) with ESMTP id BAA04256 for ; Sun, 5 Mar 2000 01:32:39 -0500 (EST) Date: Sun, 5 Mar 2000 01:32:39 -0500 (EST) From: "Andrew Atrens" X-Sender: atrens@hcarp00g.ca.nortel.com Reply-To: "Andrew Atrens" To: current@freebsd.org Subject: VMWare 2.0R broken - linux ioctl(13, 1260, *) not implemented Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG A missing (not implemented) linux ioctl is breaking VMWare 2.0 - > linux: 'ioctl' fd=13, cmd=1260 ('^R',96) not implemented After rummaging around in the 2.3 kernel, I found the following in `linux/include/linux/fs.h': /* the read-only stuff doesn't really belong here, but any other place is probably as bad and I don't want to create yet another include file. */ #define BLKROSET _IO(0x12,93) /* set device read-only (0 = read-write) */ #define BLKROGET _IO(0x12,94) /* get read-only status (0 = read_write) */ #define BLKRRPART _IO(0x12,95) /* re-read partition table */ #define BLKGETSIZE _IO(0x12,96) /* return device size */ #define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ #define BLKRASET _IO(0x12,98) /* Set read ahead for block device */ #define BLKRAGET _IO(0x12,99) /* get current read ahead setting */ #define BLKFRASET _IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */ #define BLKFRAGET _IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */ #define BLKSECTSET _IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */ #define BLKSECTGET _IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */ #define BLKSSZGET _IO(0x12,104)/* get block device sector size */ So it looks like BLKGETSIZE is the missing ioctl. I'm not sure how to fix this, because well, we don't have block devices, the ATA driver doesn't support ioctls _or_ have a useful psize attribute in its cdevsw struct. I naively thought I could use fstat() then devsw() to map the file descriptor to a device, and then interrogate the device's psize. But that goofy attempt just resulted in a kernel panic. :) Please don't dis me on how stupid that was - instead tell me what I should do :) Seriously though, any help y'all could provide would be greatly appreciated. :) Andrew. -- +-- | Andrew Atrens Nortel Networks, Ottawa, Canada. | | All opinions expressed are my own, not those of any employer. | --+ Berkeley had what we called "copycenter", which is "take it down to the copy center and make as many copies as you want". -- Kirk McKusick +-- --+ Bill Gates is a white Persian cat and a monocle away from becoming another James Bond villain. "No Mr Bond, I expect you to upgrade." -- Dennis Miller +-- --+ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message