On Mon, 3 Jun 2024 at 10:02, Peter-Jan Gootzen <[email protected]> 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