synf-core/source/osx/device.c
2025-10-10 02:05:07 +02:00

90 lines
1.7 KiB
C

#ifdef __APPLE__
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/sysctl.h>
#include <device.h>
device_s device_info;
void* device_name(){
char *name;
size_t size = 0;
if (sysctlbyname("kern.hostname", NULL, &size, NULL, 0) < 0)
perror("failed retrieving the hostname: \n");
name = malloc(size);
if(sysctlbyname("kern.hostname", name, &size, NULL, 0) < 0){
perror("failed retrieving the hostname: \n");
free(name);
return NULL;
}
device_info.name = name;
return NULL;
}
void* device_model(){
char *model_name;
size_t size = 0;
if (sysctlbyname("hw.model", NULL, &size, NULL, 0) < 0)
perror("failed retrieving the hostname: \n");
model_name = malloc(size);
if(sysctlbyname("hw.model", model_name, &size, NULL, 0) < 0){
perror("failed retrieving the hostname: \n");
free(model_name);
return NULL;
}
device_info.model = model_name;
return NULL;
}
void* device_up_time(){
return NULL;
}
void* device_os_version(){
char *os_version;
size_t size = 0;
if (sysctlbyname("kern.ostype", NULL, &size, NULL, 0) < 0)
perror("failed retrieving the hostname: \n");
os_version = malloc(size);
if(sysctlbyname("kern.ostype", os_version, &size, NULL, 0) < 0){
perror("failed retrieving the os version: \n");
free(os_version);
return NULL;
}
device_info.model = os_version;
return NULL;
}
void* get_device_info(){
device_name();
device_model();
printf("device name: %s\ndevice model: %s\n", device_info.name, device_info.model);
return NULL;
}
#endif