[SeaBIOS] Little help with call32
Daniel Castro
evil.dani at gmail.com
Thu Apr 26 15:05:15 CEST 2012
On Tue, Apr 24, 2012 at 8:33 AM, Kevin O'Connor <kevin at koconnor.net> wrote:
> On Mon, Apr 23, 2012 at 03:51:10PM +0900, Daniel Castro wrote:
>> Hello All,
>>
>> I have a small problem with call32, after I make the call and the
>> 32bit code is executed the parameter I am sending is incorrect, so
>> evidently I am doing something incorrect.
>>
>> Here is my 16bit code:
>> dprintf(1,"Operation 16bit drive at %p\n",op->drive_g);
>> extern void _cfunc32flat_xen_blk_op_read(struct disk_op_s *);
>> return call32(_cfunc32flat_xen_blk_op_read,op,DISK_RET_EPARAM);
>
> The 'op' structure is on the stack and the pointer is therefore
> relative to the stack segment. Use MAKE_FLATPTR to construct a 32bit
> pointer - see pci_writel() for an example.
Thanks
>
> -Kevin
--
+-=====---------------------------+
| +---------------------------------+ | This space intentionally blank
for notetaking.
| | | Daniel Castro, |
| | | Consultant/Programmer.|
| | | U Andes |
+-------------------------------------+
More information about the SeaBIOS
mailing list