registry.c (1165B)
1 #include <kit/config.h> 2 #include <kit/os.h> 3 4 #if KIT_OBJ_MACHO_ENABLED 5 extern const KitOsImpl kit_os_macos_impl; 6 extern const KitOsImpl kit_os_ios_impl; 7 extern const KitOsImpl kit_os_ios_simulator_impl; 8 #endif 9 #if KIT_OBJ_ELF_ENABLED || KIT_EMU_ENABLED 10 extern const KitOsImpl kit_os_linux_impl; 11 #endif 12 #if KIT_OBJ_ELF_ENABLED 13 extern const KitOsImpl kit_os_freebsd_impl; 14 extern const KitOsImpl kit_os_android_impl; 15 #endif 16 #if KIT_OBJ_COFF_ENABLED 17 extern const KitOsImpl kit_os_windows_impl; 18 #endif 19 20 const KitOsImpl* kit_os_lookup(KitOSKind kind) { 21 switch (kind) { 22 #if KIT_OBJ_MACHO_ENABLED 23 case KIT_OS_MACOS: 24 return &kit_os_macos_impl; 25 case KIT_OS_IOS: 26 return &kit_os_ios_impl; 27 case KIT_OS_IOS_SIMULATOR: 28 return &kit_os_ios_simulator_impl; 29 #endif 30 #if KIT_OBJ_ELF_ENABLED || KIT_EMU_ENABLED 31 case KIT_OS_LINUX: 32 return &kit_os_linux_impl; 33 #endif 34 #if KIT_OBJ_ELF_ENABLED 35 case KIT_OS_FREEBSD: 36 return &kit_os_freebsd_impl; 37 case KIT_OS_ANDROID: 38 return &kit_os_android_impl; 39 #endif 40 #if KIT_OBJ_COFF_ENABLED 41 case KIT_OS_WINDOWS: 42 return &kit_os_windows_impl; 43 #endif 44 default: 45 return NULL; 46 } 47 }