arch_init doesn't have anything by itself that is host-specific. In my arm branch get_memory_layout is the host-specific function that determines which paging mode is in use, arch_init uses that information to setup the interface. When the host is x86* it checks for the 3 page modes that could be valid for the guest, on arm host it just sets it to VMI_PM_ARM.