Hi, On 11/5/24 6:16 PM, Yuqian Yang wrote:
> In conclusion, there is no way to do things like using a pointer to pass > data pointed by it in Mach. I can understand this is rooted in Mach > design. This does create problems of mimicking API in Linux to reuse a > lot of high-level things. At least for drm, most APIs of drm in Linux > are implemented by passing data with pointer with ioctl. libdrm relies > on this, and then mesa relies on libdrm, and OpenGL and Vulkan apps rely > on mesa. It sounds like we need to implement a wrapping-paper thin layer in libdrm that unpacks drmIoctl() and fans out all the combinations of proper RPCs; it will be ugly but doable. (I was hoping we could just pass in a casted struct as that is what an ioctl is for). This is more work, but probably simplest. Damien