From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: Need help figuring out why my windows pv drivers wontwork with a 32 bit dom0... Date: Fri, 1 Feb 2008 12:18:19 +0000 Message-ID: <20080201121819.GH4475@implementation.uk.xensource.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: James Harper Cc: xen-devel List-Id: xen-devel@lists.xenproject.org James Harper, le Fri 01 Feb 2008 15:52:55 +1100, a écrit : > > . Windows is padding structures differently under 32 and 64 bits. > > Strange that everything else works fine though... > > I think I may be onto something with this... > > 32 bit Linux (using gcc and a quick .c file): > sizeof(uint8_t) = 1 > sizeof(uint16_t) = 2 > sizeof(uint32_t) = 4 > sizeof(uint64_t) = 8 > sizeof(struct blkif_request) = 108 > sizeof(struct blkif_request_segment) = 8 > sizeof(struct blkif_response) = 12 > > 64 bit Linux (using gcc and a quick .c file): > sizeof(uint8_t) = 1 > sizeof(uint16_t) = 2 > sizeof(uint32_t) = 4 > sizeof(uint64_t) = 8 > sizeof(struct blkif_request) = 112 > sizeof(struct blkif_request_segment) = 8 > sizeof(struct blkif_response) = 16 > > 32 bit Windows (using Microsoft DDK Compiler and debug statements in the > driver) > sizeof(uint8_t) = 1 > sizeof(uint16_t) = 2 > sizeof(uint32_t) = 4 > sizeof(uint64_t) = 8 > sizeof(struct blkif_request) = 112 > sizeof(struct blkif_request_segment) = 8 > sizeof(struct blkif_response) = 16 > > Haven't tried this test on 64 bit windows yet, but if 32 bit windows and > 32 bit Linux align their structures differently, I can imagine that > problems are going to arise... Mmm, then we probably need to define windows-specific ABI types... Samuel