Table des matières du Be Book     Index du kit du Noyau

Informations sur le Système

Déclarations dans : be/kernel/OS.h

Librairie : libroot.so

Les fonctions, types et structures suivants fournissent des informations sur le système, comme le nombre de processeurs (CPUs), quand le noyau a été compilé, ou encore est-ce que votre ordinateur est en feu.


Fonctions


get_system_info()

                                                         
  

status_t get_system_info(system_info *info)

La fonction get_system_info() vous dit tout et plus sur les capacités physiques de votre ordinateur et autres statistiques de votre système d'exploitation. La fonction copie ces informations dans le system_info de l'argument info. Vous devez allouer info avant de le passer en entrée.

CODES DE RETOUR

get_system_info() retourne toujours B_OK.


is_computer_on()

                                                         
  

int32 is_computer_on(void)

Retourne 1 si l'ordinateur est allumé. Si l'ordinateur n'est pas allumé, la valeur retournée par cette fonction n'est pas définie.


is_computer_on_fire()

                                                         
  

double is_computer_on_fire(void)

Retourne la température de la carte mère si l'ordinateur est en feu. Si l'ordinateur n'est pas en feu, la fonction retourne une autre valeur quelconque.


Structures et Constantes


cpu_info

                                                         
  

system_info       bigtime_t active_time;
      } cpu_info

La structure cpu_info fournit des informations sur le(s) processeur(s) de votre ordinateur. Vous obtenez cette structure en regardant le champ cpu_infos de la structure system_info. Le champ cpu_infos est un tableau qui contient une structure cpu_info pour chaque processeur sur votre carte mère.

Champ Signification
active_time Le nombre de micro-secondes que le processeur a dépensé à travailler de manière utile (c.a.d. lorsqu'il n'attend pas quelque chose) depuis que la machine est démarrée.


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, Obsolète
      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;

 
La constante B_X86_CPU est obsolète. Tous les processeurs x86 sont représentés par des constantes vendeur/modèle spécifiques.


Ces constantes représentent différents vendeurs et modèles de processeur. Pour obtenir la constante représentant le(s) processeur(s) que votre ordinateur utilise, regardez le champ cpu_type de la structure system_info.

Notez que les types x86 sont groupés par vendeur, où le vendeur est identifié par le mot de poid fort (high word), et le modèle par le mot de poid faible. Chaque vendeur a sa propre constante cpu_type, comme indiqué par les valeurs explicites de la liste ci-dessus. Si vous êtes intéressé que par le vendeur, masquez la valeur de cpu_type par B_CPU_X86_VENDOR_MASK, ainsi :

   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:
      /* Pas un x86. */
   }


B_CPU_X86_VENDOR_MASK

                                                         
  

B_CPU_X86_VENDOR_MASK

Vous masquez la valeur de cpu_type de votre machine avec cette constante pour obtenir l'identifiant du vendeur du processeur (qui est aussi une des valeurs de cpu_type). Si le processeur n'est pas de l'espèce des x86, appliquer ce masque retournera 0. Consultez la description de cpu_type pour un exemple.


machine_id

                                                         
  

typedef int32 machine_id[2]; Actuellement inutilisé

machine_id est un nombre de 64 bits (encodé comme deux nombres de 32 bits) qui identifie de manière unique cet ordinateur en particulier. L'idenfiant est retourné pas le champ id (Actuellement inutilisé) de la structure system_info.


B_MAX_CPU_COUNT

                                                         
  

B_MAX_CPU_COUNT

Cette constante est valorisée au maximum de processeurs dont BeOS peut tirer parti. Ce nombre dépend de la machine.


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;

Ces constantes représentes les diverses plateformes d'ordinateurs sur lesquelles BeOS fonctionne, ou a, devrait, pourrait fonctionner ou ne fonctionnera pas. Pour obtenir la constante de votre machine, regardez le champ platform_type de la structure system_info.


system_info

                                                         
  

typedef struct {
      machine_id id; Actuellement inutilisé
      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;

La structure system_info décrit votre ordinateur et le système d'exploitation, et fournit des informations sur la disponibilité des ressources du Noyau (comme les threads et les ports). Vous obtenez une structure system_info via la fonction get_system_info().

Champ Signification
id Un nombre de 64 bits (encodé comme deux int32) qui identifie de manière uniquement cette machine. Actuellement inutilisé.
boot_time L'heure du dernier démarrage de cet ordinateur, exprimé en micro-secondes depuis le 1er janvier 1970. Vous pouvez aussi obtenir cette information via system_time().
cpu_count Le nombre de processeur(s) sur la carte mère de votre ordinateur.
cpu_type Une constante représentant le frabricant et le modèle du(des) processeur(s).
cpu_revision La révision du(des) processeur(s).
cpu_infos Un tableau de structures cpu_info, une pour chaque processeur.
cpu_clock_speed La vitesse (en Hz) à laquelle fonctionne le(s) processeur(s).
bus_clock_speed La vitesse (en Hz) à laquelle fonctionne le bus.
platform_type La constante représentant le type de plateforme de votre ordinateur.
max_resource
used_resource
Ces champs donnent le nombre total de pages RAM, de sémaphores, etc, que le système peut créer, et le nombre en usage actuellement.
page_faults Le nombre de fois que le système a chargé une page de mémoire en RAM suite à une faute de page.
kernel_name Le nom du fichier du noyau (le nom, pas le chemin complet).
kernel_build_date Une chaine de taille fixe donnant la date de compilation du noyau; par exemple :
   Jun  5 1999
kernel_build_time    Une chaine de taille fixe donnant l'heure de compilation du noyau; par exemple :
   10:02:16
kernel_version Un nombre affecté par Be pour identifier la version du noyau.


Table des matières du Be Book     Index du kit du Noyau


Le Be Book,
...en superbe HTML...
pour BeOS Release 5.

Copyright © 2000 Be, Inc. Tous droits réservés.
Traduit en Français par Philippe Houdoin

Copyright © 2000 Be, Inc. All rights reserved..