@@ -23,10 +23,32 @@ * @class OFSystemInfo OFSystemInfo.h ObjFW/OFSystemInfo.h * * @brief A class for querying information about the system. */ @interface OFSystemInfo: OFObject +#ifdef OF_HAVE_CLASS_PROPERTIES +@property (class, readonly, nonatomic) size_t pageSize; +@property (class, readonly, nonatomic) size_t numberOfCPUs; +@property (class, readonly, nullable, nonatomic) OFString *userDataPath; +@property (class, readonly, nullable, nonatomic) OFString *userConfigPath; +@property (class, readonly, nullable, nonatomic) OFString *CPUVendor; +# if defined(OF_X86_64) || defined(OF_X86) || defined(DOXYGEN) +@property (class, readonly, nonatomic) bool supportsMMX; +@property (class, readonly, nonatomic) bool supportsSSE; +@property (class, readonly, nonatomic) bool supportsSSE2; +@property (class, readonly, nonatomic) bool supportsSSE3; +@property (class, readonly, nonatomic) bool supportsSSSE3; +@property (class, readonly, nonatomic) bool supportsSSE41; +@property (class, readonly, nonatomic) bool supportsSSE42; +@property (class, readonly, nonatomic) bool supportsAVX; +@property (class, readonly, nonatomic) bool supportsAVX2; +# endif +# if defined(OF_POWERPC) || defined(OF_POWERPC64) || defined(DOXYGEN) +@property (class, readonly, nonatomic) bool supportsAltiVec; +# endif +#endif + /*! * @brief Returns the size of a page. * * @return The size of a page */ @@ -49,11 +71,11 @@ * On Windows, it uses the `APPDATA` environment variable.@n * On Haiku, it uses the `B_USER_SETTINGS_DIRECTORY` directory. * * @return The path where user data for the application can be stored */ -+ (OFString *)userDataPath; ++ (nullable OFString *)userDataPath; /*! * @brief Returns the path where user configuration for the application can be * stored. * @@ -63,11 +85,11 @@ * On Windows, it uses the `APPDATA` environment variable.@n * On Haiku, it uses the `B_USER_SETTINGS_DIRECTORY` directory. * * @return The path where user configuration for the application can be stored */ -+ (OFString *)userConfigPath; ++ (nullable OFString *)userConfigPath; /*! * @brief Returns the vendor of the CPU. * * If the vendor could not be determined, `nil` is returned instead.