On Mon, 3 Jun 2024 at 10:02, Peter-Jan Gootzen <pgootzen@xxxxxxxxxx> wrote: > We would like to make a proposal regarding our idea for solving this > issue before sending in a patch: > Use a uint32_t from the unused array in FUSE_INIT to encode an `uint32_t > arch_indicator` that contains one of the architecture IDs specified in a > new enum (is there an existing enum like such?): > enum fuse_arch_indicator { > FUSE_ARCH_NONE = 0, > FUSE_ARCH_X86 = 1, > FUSE_ARCH_ARM64 = 2, > ... > } > Through this the host tells the FUSE file system which version of > fcntl.h it will use. > The FUSE file system should keep a copy of all the possible fcntl > headers and use the one indicated by the `fuse_init_in.arch_indicator`. To be clear: you propose that the fuse client (in the VM kernel) sets the arch indicator and the server (on the host) translates constants? That sounds like a good plan. Alternatively the client would optionally translate to a common set of constants (x86 would be a good choice) and then the server would only need to know the translation between x86 and native. What about errno? Any other arch specific constants? Thanks, Miklos