The OpenNET Project / Index page

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

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

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

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

    NAME

    ddi_mmap_get_model - return data
    model type of current thread
     
    

    SYNOPSIS

    #include <sys/ddi.h> 
    #include <sys/sunddi.h>
    
    
    
    uint_t ddi_mmap_get_model(void);
    

     

    INTERFACE LEVEL

    Solaris DDI specific (Solaris DDI).  

    DESCRIPTION

    ddi_mmap_get_model() returns the C Language Type Model which the current thread expects. ddi_mmap_get_model() is used in combination with ddi_model_convert_from(9F) in the mmap(9E) driver entry point to determine whether there is a data model mismatch between the current thread and the device driver. The device driver might have to adjust the shape of data structures before exporting them to a user thread which supports a different data model.  

    RETURN VALUES

    DDI_MODEL_ILP32

    Current thread expects 32-bit (ILP32) semantics.

    DDI_MODEL_LP64

    Current thread expects 64-bit (LP64) semantics.

    DDI_FAILURE

    The ddi_mmap_get_model() function was not called from the mmap(9E) entry point.

     

    CONTEXT

    The ddi_mmap_get_model() function can only be called from the mmap(9E) driver entry point.  

    EXAMPLES

    Example 1 : Using ddi_mmap_get_model()

    The following is an example of the mmap(9E) entry point and how to support 32-bit and 64-bit applications with the same device driver.

    struct data32 {
           int len;
           caddr32_t addr;
    };
    
    struct data {
           int len;
           caddr_t addr;
    };
    xxmmap(dev_t dev, off_t off, int prot) {
           struct data dtc; /* a local copy for clash resolution */
           struct data *dp = (struct data *)shared_area;
    
           switch (ddi_model_convert_from(ddi_mmap_get_model())) {
           case DDI_MODEL_ILP32:
           {
                   struct data32 *da32p;
    
                   da32p = (struct data32 *)shared_area;
                   dp = &dtc;
                   dp->len = da32p->len;
                   dp->address = da32->address;
                   break;
           }
           case DDI_MODEL_NONE:
                   break;
           }
           /* continues along using dp */
          ...
    }
    

     

    SEE ALSO

    mmap(9E), ddi_model_convert_from(9F)

    Writing Device Drivers


     

    Index

    NAME
    SYNOPSIS
    INTERFACE LEVEL
    DESCRIPTION
    RETURN VALUES
    CONTEXT
    EXAMPLES
    SEE ALSO


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




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

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