[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] C Macros and Xen RING Macros Questions
hello All, I am still working on the PV Drivers for SeaBIOS using upstream qemu. And, I have two questions. 1. Here is the location of all relevant data structs: blkfront_info:0x000fd620 shared_ring:0x0009a000 private_ring:0x0009b000 DEBUG Read op private ring at 0x0009b000-0x000ab000, idx 63478 Here is my problem, when I do: ring_req = GLOBALFLAT2GLOBAL(RING_GET_REQUEST(GET_GLOBALFLAT(bi->private),GLOBALFLAT2GLOBAL(GET_GLOBALFLAT(bi->private)->req_prod_pvt))); //please ignore the MACROS for now, or read further down. I get: After RING_GET_REQUEST operation ring request is at 0xe18ea40f id:0 But I have the feeling that the request should be between 0x0009b000-0x000ab000. Right? 2. As you can see in the above code I use some SeaBIOS macros to access 32Bit addresses in 16Bit code. My second questions is: How the memory access macros affect the RING macros? Do I need to rewrite the ring macros to use the memory macros inside, for example: /* How big is this ring? */ #define RING_SIZE(_r) \ ((_r)->nr_ents) Should be instead: /* How big is this ring? */ #define RING_SIZE(_r) \ (GET_GLOBAL((_r)->nr_ents)) SeaBIOS macros need to be around ALL memory accesses. This is a short message for something that might be to complex to explain briefly, so please ask any questions that you deem necessary to understand. Right now, I am developing the first stage of boot when the BIOS requests address 7c00 to get the Boot sector. Once I get this working we should have a working prototype for PV-drivers in seabios. Thank you all for your interest, Daniel -- +-=====---------------------------+ | +---------------------------------+ | This space intentionally blank for notetaking. | | | Daniel Castro, | | | | Consultant/Programmer.| | | | U Andes | +-------------------------------------+ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |