PAL entry point
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Christian Hildner
Christian> Stephane, David, do you agree making the symbol Christian> pal_entry_point global (included in pal.S)? I would need Christian> access to the PAL routines directly from my program Christian> without using the provided functions.
I'm not sure that's a good idea. PAL has very particular constraints on the environment in which it can be called in. Why aren't the normal entry points (ia64_pal_call_static(), ia64_pal_call_stacked(), ia64_pal_call_phys_static(), and ia64_pal_call_phys_stacked()) sufficient?
--david
Christian,
Quoted 7 lines · David Mosberger
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Christian Hildner
Christian> Stephane, David, do you agree making the symbol Christian>
pal_entry_pointglobal (included inpal.S)? I would need Christian> access to the PAL routines directly from my program Christian> without using the provided functions.
Quoted 5 lines
I'm not sure that's a good idea. PAL has very particular constraints on the environment in which it can be called in. Why aren't the normal entry points (
ia64_pal_call_static(),ia64_pal_call_stacked(),ia64_pal_call_phys_static(), andia64_pal_call_phys_stacked()) sufficient?
I don't think it is a good idea because by itself knowing the entry point value does not allow you to simply call it. If you look at pal.S, you see that there is much more involved in calling a PAL procedure, especially for those labeled physical/static. So I agree with David, that we should instead export the 4 call stubs that will allow you (with less effort) to call PAL.
Signature · 1 line
-Stephane
Quoted 7 lines · David Mosberger
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Christian Hildner
Christian> Stephane, David, do you agree making the symbol Christian>
pal_entry_pointglobal (included inpal.S)? I would need Christian> access to the PAL routines directly from my program Christian> without using the provided functions.
Quoted 7 lines
I'm not sure that's a good idea. PAL has very particular constraints on the environment in which it can be called in. Why aren't the normal entry points (
ia64_pal_call_static(),ia64_pal_call_stacked(),ia64_pal_call_phys_static(), andia64_pal_call_phys_stacked()) sufficient?--david
The problem is that in the context from which I want to call PAL there is no register stack available and so there is no possibility to call a regular kernel function. I want to call the PAL in physical/static mode and I know that it's not the easiest way to do this but I think I know what I am doing.
Christian
Quoted 7 lines · David Mosberger
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · Christian Hildner
Christian> The supplied stubs use register stack and Christian> certain registers that I am using too. Furthermore I Christian> cannot rely on this routines beeing unchanged in the Christian> future. So I want to code my own mode switch stub.
Quoted 5 lines
I see. So why don't you grab the PAL entry point from the SAL system table? The address of that table is stored in the "efi" table (see
asm-ia64/efi.h).--david
Yes, that's it.
Christian