Next: , Previous: Host Ports, Up: Host Interface


8.2 Host Information

— Function: kern_return_t host_info (host_t host, int flavor, host_info_t host_info, mach_msg_type_number_t *host_info_count)

The host_info function returns various information about host. host_info is an array of integers that is supplied by the caller. It will be filled with the requested information. host_info_count is supplied as the maximum number of integers in host_info. On return, it contains the actual number of integers in host_info. The maximum number of integers returned by any flavor is HOST_INFO_MAX.

The type of information returned is defined by flavor, which can be one of the following:

HOST_BASIC_INFO
The function returns basic information about the host, as defined by host_basic_info_t. This includes the number of processors, their type, and the amount of memory installed in the system. The number of integers returned is HOST_BASIC_INFO_COUNT. For how to get more information about the processor, see Processor Interface.
HOST_PROCESSOR_SLOTS
The function returns the numbers of the slots with active processors in them. The number of integers returned can be up to max_cpus, as returned by the HOST_BASIC_INFO flavor of host_info.
HOST_SCHED_INFO
The function returns information of interest to schedulers as defined by host_sched_info_t. The number of integers returned is HOST_SCHED_INFO_COUNT.

The function returns KERN_SUCCESS if the call succeeded and KERN_INVALID_ARGUMENT if host is not a host or flavor is not recognized. The function returns MIG_ARRAY_TOO_LARGE if the returned info array is too large for host_info. In this case, host_info is filled as much as possible and host_info_count is set to the number of elements that would be returned if there were enough room.

— Data type: struct host_basic_info

A pointer to this structure is returned in host_info by the host_info function and provides basic information about the host. You can cast a variable of type host_info_t to a pointer of this type if you provided it as the host_info parameter for the HOST_BASIC_INFO flavor of host_info. It has the following members:

int max_cpus
The maximum number of possible processors for which the kernel is configured.
int avail_cpus
The number of cpus currently available.
vm_size_t memory_size
The size of physical memory in bytes.
cpu_type_t cpu_type
The type of the master processor.
cpu_subtype_t cpu_subtype
The subtype of the master processor.

The type and subtype of the individual processors are also available by processor_info, see Processor Interface.

— Data type: host_basic_info_t

This is a pointer to a struct host_basic_info.

— Data type: struct host_sched_info

A pointer to this structure is returned in host_info by the host_info function and provides information of interest to schedulers. You can cast a variable of type host_info_t to a pointer of this type if you provided it as the host_info parameter for the HOST_SCHED_INFO flavor of host_info. It has the following members:

int min_timeout
The minimum timeout and unit of time in milliseconds.
int min_quantum
The minimum quantum and unit of quantum in milliseconds.

— Data type: host_sched_info_t

This is a pointer to a struct host_sched_info.

— Function: kern_return_t host_kernel_version (host_t host, kernel_version_t *version)

The host_kernel_version function returns the version string compiled into the kernel executing on host at the time it was built in the character string version. This string describes the version of the kernel. The constant KERNEL_VERSION_MAX should be used to dimension storage for the returned string if the kernel_version_t declaration is not used.

If the version string compiled into the kernel is longer than KERNEL_VERSION_MAX, the result is truncated and not necessarily null-terminated.

If host is not a valid send right to a host port, the function returns KERN_INVALID_ARGUMENT. If version points to inaccessible memory, it returns KERN_INVALID_ADDRESS, and KERN_SUCCESS otherwise.

— Function: kern_return_t host_get_boot_info (host_priv_t host_priv, kernel_boot_info_t boot_info)

The host_get_boot_info function returns the boot-time information string supplied by the operator to the kernel executing on host_priv in the character string boot_info. The constant KERNEL_BOOT_INFO_MAX should be used to dimension storage for the returned string if the kernel_boot_info_t declaration is not used.

If the boot-time information string supplied by the operator is longer than KERNEL_BOOT_INFO_MAX, the result is truncated and not necessarily null-terminated.