Be Book Kernel Kit Kernel Kit Indeks

Informacje systemowe

Zadeklarowany w:  be/kernel/OS.h
Biblioteka: libroot.so
Streszczenie:  więcej...

 

Następujące funkcje, typy i struktury przekazują informacje o systemie, takie jak liczba procesorów, kiedy zostało zbudowane jądro i czy komputer się pali.


Funkcje Informacji Systemowych


get_system_info()

status_t get_system_info(system_info *info)

Funkcja get_system_info() mówi Ci więcej niż chcesz wiedzieć o fizycznych zdolnościach Twojego komputera i innych danych statystycznych Twojego systemu operacyjnego. Funkcja kopiuje te informacje do argumentu info, który jest typu system_info. Musisz zaalokować argument info przed przekazaniem go do niej.

ZWRACANE KODY

get_system_info() zawsze zwraca


is_computer_on()

int32 is_computer_on(void)

Zwraca 1 jeśli komputer jest włączony. Jeśli komputer nie jest włączony, wartość zwracana przez tą funkcję jest nieokreślona.


is_computer_on_fire()

double is_computer_on_fire(void)

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


Struktury i Stałe Informacji Systemowych


cpu_info

typedef struct {
      bigtime_t active_time;
      } cpu_info

Struktura cpu_info dostarcza informacji o procesorze Twojego komputera. Uzyskujesz strukturę przez przeglądanie pola cpu_infos w strukturze system_info. Pole cpu_infos jest tablicą, która zawiera po jednej strukturze cpu_info dla każdego procesora Twojej płyty głównej.

Pole Znaczenie
active_time Liczba mikrosekund jakie procesror spędził wykonując użyteczną pracę (t.j. nie będąc zajętym wyczekiwaniem) odkąd maszyna została uruchomiona.


cpu_type

typedef enum cpu_types {
      B_CPU_PPC_601,
      B_CPU_PPC_603,
      B_CPU_PPC_603e,
      B_CPU_PPC_604,
      B_CPU_PPC_604e,
      B_CPU_PPC_750,
      B_CPU_PPC_686,
      B_CPU_AMD_29K,
      B_CPU_X86, Obsolete
      
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,
      
      B_CPU_INTEL_X86 = 0x1000,
      
B_CPU_INTEL_PENTIUM,
      B_CPU_INTEL_PENTIUM75,
      B_CPU_INTEL_PENTIUM_486_OVERDRIVE,
      B_CPU_INTEL_PENTIUM_MMX,
      B_CPU_INTEL_PENTIUM_MMX_MODEL_4,
      B_CPU_INTEL_PENTIUM_MMX_MODEL_8,
      B_CPU_INTEL_PENTIUM75_486_OVERDRIVE,
      B_CPU_INTEL_PENTIUM_PRO,
      B_CPU_INTEL_PENTIUM_II,
      B_CPU_INTEL_PENTIUM_II_MODEL_3,
      B_CPU_INTEL_PENTIUM_II_MODEL_5,
      B_CPU_INTEL_CELERON,
      B_CPU_INTEL_PENTIUM_III,
      
      B_CPU_AMD_X86 = 0x1100,
      B_CPU_AMD_K5_MODEL0,
      B_CPU_AMD_K5_MODEL1,
      B_CPU_AMD_K5_MODEL2,
      B_CPU_AMD_K5_MODEL3,
      B_CPU_AMD_K6_MODEL6,
      B_CPU_AMD_K6_MODEL7,
      B_CPU_AMD_K6_MODEL8,
      B_CPU_AMD_K6_2,
      B_CPU_AMD_K6_MODEL9,
      B_CPU_AMD_K6_III,
      B_CPU_AMD_ATHLON_MODEL1,
      
      B_CPU_CYRIX_X86 = 0x1200,
      B_CPU_CYRIX_GXm,
      B_CPU_CYRIX_6x86MX,
      
      B_CPU_IDT_X86 = 0x1300,
      B_CPU_IDT_WINCHIP_C6,
      B_CPU_IDT_WINCHIP_2,
      
      B_CPU_RISE_X86 = 0x1400,
      B_CPU_RISE_mP6
      
} cpu_type;

Stała B_X86_CPU jest przestarzała. Wszystkie procesory x86 są preprezentowane przez specyficzne stałe producent/model.

Te stałe reperezentują różnych producenów i różne modele procesorów. Aby uzyskać stałą, która reprezentuje procesor(y), które używa Twój komputer, zaglądnij do pola cpu_type w strukturze system_info.

Zauważ, że typy x86 są zgrupowane wg producenta, gdzie producent jest identyfikowany przez górne słowo a model przez dolne słowo. Każdy producent ma swoją własną stałą cpu_type, jak wskazane wprost przez wartości w powyższej liście. Jeśli jesteś zainteresowany tylko producentem, ustaw maskę wartości cpu_type ze stałą B_CPU_X86_VENDOR_MASK, w ten sposób:

system_info sysinfo;
get_system_info( &sysinfo );

switch ( sysinfo.cpu_type & B_CPU_X86_VENDOR_MASK ) {
   case B_CPU_INTEL_X86: ...
   case B_CPU_AMD_X86: ...
   case B_CPU_CYRIX_x86: ...
   case B_CPU_IDT_X86: ...
   case B_CPU_RISE_X86: ...
   default:
   /* Nie x86. */
}


B_CPU_X86_VENDOR_MASK

B_CPU_X86_VENDOR_MASK

Maskujesz wartość cpu_type Twojej maszyny z tą stałą aby uzyskać id (numer identyfikacyjny) producenta procesora (który jest również wartością cpu_type). Jeśli procesor nie pochodzi z rodziny x86, zastosowana maska da 0. Dla przykladu zobacz do opisu cpu_type.


machine_id

typedef int32 machine_id[2]; Obecnie nieużywany

machine_id jest 64-bitową liczbą (kodowaną jako dwie liczby 32-bitowe), które unikatowo identyfkują ten określony komputer. Numer id (numer identyfikacyjny) jest zwracany jako pole id (obecnie nieużywany ) struktury system_info.


B_MAX_CPU_COUNT

B_MAX_CPU_COUNT

Ta stała jest ustawiana na maksymalną liczbę procesorów, które BeOS może wykorzystać. Ta liczba jest zależna od maszyny.


platform_type

typedef enum platform_types {
      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,
      B_BESM_6_PLATFORM,
      B_MK_61_PLATFORM,
      B_NINTENDO_64_PLATFORM
      
} platform_type;

Te stałe reprezentują różne platformy komputerowe, które BeOS obsługuje, ma, powinien, może obsługiwać lub na których nie może działać. Aby uzyskać tą stałą dla maszyny, na której on działa, zaglądnij do pola platform_type struktury system_info.


system_info

typedef struct {
      machine_id id; Obecnie nieużywane
      
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 opisuje sprzęt Twojego komputera i system operacyjny i dostarcza informacji o dostępności zasobów jądra (takich jak wątki i porty). Możesz uzyskać strukturę system_info poprzez funkcję get_system_info().

Pole Znaczenie
id Liczba 64-bitowa (kodowana jako dwie int32), która jest unikatowym identyfikatorem tej maszyny. Obecnie nieużywane .
boot_time Czas w którym twój komputer został ostatnio uruchomiony, mierzony w mikrosekundach od 1 stycznia 1970. Możesz tą informację uzyskać również poprzez system_time().
cpu_count Liczba procesorów na płycie głównej Twojego komputera.
cpu_type Stałą, która reprezentuje wykonanie i model procesora.
cpu_revision Numer rewizji procesora(ów).
cpu_infos Tablica struktur cpu_info, po jednej na każdy procesor.
cpu_clock_speed Szybkość (w Hz) z którą działa(ją) procesor(y).
bus_clock_speed Szybkość (w Hz) z którą działa szyna.
platform_type Stałą typu platformy, która reprezentuje Twój komputer.
max_resource
used_resource

Te pola podają całkowitą liczbę stron pamięci RAM, semaforów i innnych, które system może utworzyć i liczbę tych, które są obecnie w użyciu.

page_faults Liczba podająca ile razy sysytem musiał wczytać stronę pamięci do RAM'u z powodu braku strony.
kernel_name Nazwa pliku jądra (nazwa liścia, nie ścieżka dostępu).
kernel_build_date Stałej szerokości napis, który podaje datę, kiedy jądro zostało zbudowane; dla przykładu: 5 czerwiec 1999
kernel_build_time Stałej szerokości napis, który podaje czas, kiedy jądro zostało zbudowane, dla przykładu: 10:02:16
kernel_version

Przypisany przez Be numer, który identyfikuje wersję jądra.


Be Book Kernel Kit Kernel Kit Indeks

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

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