Be Book Kernel Kit Kernel Kit Indeks

Informacje dotyczące systemu i czasu


Zadeklarowane w:  be/kernel/OS.h
Biblioteka: libroot.so

Następujące funkcje, typy i struktury są użyte do udzielania podstawowych informacji o systemie, takich jak liczba procesorów, kiedy było zbudowane jądro, jaki jest czas bieżący i czy Twój komputer jest w płomieniach.


Funkcje i struktury informacji systemowych


get_system_info() , system_info , cpu_info , cpu_type , platform_type

status_t get_system_info(system_info *info)
struct {} system_info
struct {} cpu_info
enum cpu_type
enum platform_type

Funkcja get_system_info() mówi Ci więcej niż chcesz wiedzieć o fizycznych pojemnościach i innych danych statystycznych Twojego systemu operacyjnego. Ta funkcja pobiera wskaźnik do przydzielonej struktury system_info i wypełnia go danymi.

typedef struct {
  machine_id  id;
  bigtime_t  boot_time;
  int32  cpu_count;
  cpu_type  cpu_type;
  int32  cpu_revision;
  cpu_info  cpu_infos[B_MAX_CPU_NUM];   
  int64  cpu_clock_speed;
  int64  bus_clock_speed;
  platform_type  platform_type;
  int32  max_pages;   
  int32  used_pages;
  int32  page_faults;
  int32  max_sems;         
  int32  used_sems;
  int32  max_ports;
  int32  used_ports;
  int32  max_threads;
  int32  used_threads;
  int32  max_teams;            
  int32  used_teams;
  char  kernel_name[B_FILE_NAME_LENGTH];  
  char  kernel_build_date[B_OS_NAME_LENGTH]; 
  char  kernel_build_time[B_OS_NAME_LENGTH]; 
  int64  kernel_version;   
} system_info

Struktura system_info przechowuje informację o maszynie i stanie jądra. Polami struktury są:

Strukturą cpu_info jest:

typedef struct {
   bigtime_t active_time;  
} cpu_info;

Odpowiednio, B_MAX_CPU_COUNT jest obecnie równe 8.

Typ machine_id jest następujący:

typedef int32 machine_id[2];

Stałymi cpu_type są:

typedef enum {
       B_CPU_PPC_601 = 1,
       B_CPU_PPC_603 = 2,
       B_CPU_PPC_603e = 3,
       B_CPU_PPC_604 = 4,
       B_CPU_PPC_604e = 5,
       B_CPU_PPC_686 = 13,
       B_CPU_AMD_29K,
       B_CPU_X86,
       B_CPU_MC6502,
       B_CPU_Z80,
       B_CPU_ALPHA,
       B_CPU_MIPS,
       B_CPU_HPPA,
       B_CPU_M68K,
       B_CPU_ARM,
       B_CPU_SH,
       B_CPU_SPARC
} cpu_type;

Stałymi platform_type są:

typedef enum {
       B_BEBOX_PLATFORM = 0,
       B_MAC_PLATFORM,
       B_AT_CLONE_PLATFORM,
       B_ENIAC_PLATFORM,
       B_APPLE_II_PLATFORM,
       B_CRAY_PLATFORM,
       B_LISA_PLATFORM,
       B_TI_994A_PLATFORM,
       B_TIMEX_SINCLAIR_PLATFORM,
       B_ORAC_1_PLATFORM,
       B_HAL_PLATFORM
} platform_type;

Nie spróbowałem tego, ale tak naprawdę nie myślę, że BeOS pracowałby całkiem dobrze na Timex Sinclair (patrz do is_computer_on_fire()).

get_system_info() zawsze zwraca B_OK.


is_computer_on()

int32 is_computer_on(void)

Zwraca 1 jeśli komputer jest właczony. Jeśli komputer nie jest włączony, zwracana wartość może być nieokreślona.


is_computer_on_fire()

double is_computer_on_fire(void)

Zwraca temperaturę płyty głównej, jeśli komputer jest aktualnie w płomieniach. Tlenie nie liczy się. Jeśli komputer nie jest w płomieniach, funkcja zwraca jakąś inną wartość.


Funkcje czasu


real_time_clock() , real_time_clock_usecs() , set_real_time_clock()

uint32 real_time_clock (void)
bigtime_t real_time_clock_usecs (void)
void set_real_time_clock (int32 secs_since_jan1_1970)

real_time_clock() zwraca liczbe sekund, które upłynęły od 1 stycznia 1970 roku.

real_time_clock_usecs() mierzy tę samą rozpiętość czasu w mikrosekundach.

set_real_time_clock() ustawia wartość, do której odnoszą się dwie poprzednie funkcje.


system_time()

bigtime_t system_time(void)

Zwraca liczbę mikrosekund, które upłynęły odkąd komputer został uruchominy.


Be Book Kernel Kit Kernel Kit Indeks

Be Book,
...w ślicznym HTML...
dla BeOS wydanie 5

Copyright © 2000 Be, Inc. Wszelkie prawa zastrzeżone.