Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-devel

RE: [Xen-devel] Need help figuring out why my windows pv driverswontwork

To: "xen-devel" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] Need help figuring out why my windows pv driverswontwork with a 32 bit dom0...
From: "James Harper" <james.harper@xxxxxxxxxxxxxxxx>
Date: Fri, 1 Feb 2008 16:48:03 +1100
Delivery-date: Thu, 31 Jan 2008 21:48:32 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <AEC6C66638C05B468B556EA548C1A77D0131AA0E@trantor>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <AEC6C66638C05B468B556EA548C1A77D0131AA0A@trantor> <AEC6C66638C05B468B556EA548C1A77D0131AA0E@trantor>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AchkiOnjeDQcMReOR3CXpc44efwhugABLvuwAAHyttA=
Thread-topic: [Xen-devel] Need help figuring out why my windows pv driverswontwork with a 32 bit dom0...
> > . 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...
> 

"#pragma pack(4)" before the blkif definitions and "#pragma pack()"
afterwards fixed it up.

All appears to be working now. I've pushed the changes to hg
(http://xenbits.xensource.com/ext/win-pvdrivers.hg). I haven't yet
tested under amd64 in case I've broken that...

James



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>