So I've ported the Limine spec structs and stuff to Ada and I want to use it. Actually writing the kernel-to-bootloader structs is trivial, but how do I actually read back what the bootloader gives me? In other words: I parse the stivale structure and have the address of the first tag. But how do I actually parse that structure? I suppose I could just declare a tag structure, set its address to the address of the first tag, and then start reading that data, but do I need unchecked conversion to read the (entire) structure, including the tag? If so, that's going to get incredibly irritating, given that I'll need to instantiate Unchecked_Conversion for *every* Stivale2 structure combination. I feel like I'm overthinking the problem, though.
|