The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

kstat_create (9)
  • >> kstat_create (9) ( Solaris man: Ядро )
  •  

    NAME

    kstat_create - create and initialize a new kstat
     
    

    SYNOPSIS

    #include <sys/types.h>
    #include <sys/kstat.h>
    
    
    
    kstat_t *kstat_create(const char *ks_module, int ks_instance, 
        const char *ks_name, const char *ks_class, uchar_t ks_type, 
        ulong_t ks_ndata, uchar_t ks_flag);
    

     

    INTERFACE LEVEL

    Solaris DDI specific (Solaris DDI)  

    PARAMETERS

    ks_module

    The name of the provider's module (such as "sd", "esp", ...). The "core" kernel uses the name "unix".

    ks_instance

    The provider's instance number, as from ddi_get_instance(9F). Modules which do not have a meaningful instance number should use 0.

    ks_name

    A pointer to a string that uniquely identifies this structure. Only KSTAT_STRLEN - 1 characters are significant.

    ks_class

    The general class that this kstat belongs to. The following classes are currently in use: disk, tape, net, controller, vm, kvm, hat, streams, kstat, and misc.

    ks_type

    The type of kstat to allocate. Valid types are:

    KSTAT_TYPE_NAMED

    Allows more than one data record per kstat.

    KSTAT_TYPE_INTR

    Interrupt; only one data record per kstat.

    KSTAT_TYPE_IO

    I/O; only one data record per kstat

    ks_ndata

    The number of type-specific data records to allocate.

    ks_flag

    A bit-field of various flags for this kstat. ks_flag is some combination of:

    KSTAT_FLAG_VIRTUAL

    Tells kstat_create() not to allocate memory for the kstat data section; instead, the driver will set the ks_data field to point to the data it wishes to export. This provides a convenient way to export existing data structures.

    KSTAT_FLAG_WRITABLE

    Makes the kstat data section writable by root.

    KSTAT_FLAG_PERSISTENT

    Indicates that this kstat is to be persistent over time. For persistent kstats, kstat_delete(9F) simply marks the kstat as dormant; a subsequent kstat_create() reactivates the kstat. This feature is provided so that statistics are not lost across driver close/open (such as raw disk I/O on a disk with no mounted partitions.) Note: Persistent kstats cannot be virtual, since ks_data points to garbage as soon as the driver goes away.

     

    DESCRIPTION

    kstat_create() is used in conjunction with kstat_install(9F) to allocate and initialize a kstat(9S) structure. The method is generally as follows:

    kstat_create() allocates and performs necessary system initialization of a kstat(9S) structure. kstat_create() allocates memory for the entire kstat (header plus data), initializes all header fields, initializes the data section to all zeroes, assigns a unique kstat ID (KID), and puts the kstat onto the system's kstat chain. The returned kstat is marked invalid because the provider (caller) has not yet had a chance to initialize the data section.

    After a successful call to kstat_create() the driver must perform any necessary initialization of the data section (such as setting the name fields in a kstat of type KSTAT_TYPE_NAMED). Virtual kstats must have the ks_data field set at this time. The provider may also set the ks_update, ks_private, and ks_lock fields if necessary.

    Once the kstat is completely initialized, kstat_install(9F) is used to make the kstat accessible to the outside world.  

    RETURN VALUES

    If successful, kstat_create() returns a pointer to the allocated kstat. NULL is returned upon failure.  

    CONTEXT

    kstat_create() can be called from user or kernel context.  

    EXAMPLES

    Example 1 Allocating and Initializing a kstat Structure

    pkstat_t   *ksp;
      ksp = kstat_create(module, instance, name, class, type, ndata, flags);
      if (ksp) {
         /* ... provider initialization, if necessary */
         kstat_install(ksp);
      }
    

     

    SEE ALSO

    kstat(3KSTAT), ddi_get_instance(9F), kstat_delete(9F), kstat_install(9F), kstat_named_init(9F), kstat(9S), kstat_named(9S)

    Writing Device Drivers


     

    Index

    NAME
    SYNOPSIS
    INTERFACE LEVEL
    PARAMETERS
    DESCRIPTION
    RETURN VALUES
    CONTEXT
    EXAMPLES
    SEE ALSO


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру