Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ddi_mmap_get_model(9f) [sunos man page]

ddi_mmap_get_model(9F)					   Kernel Functions for Drivers 				    ddi_mmap_get_model(9F)

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
"small and bold">DDI_MODCurrent2thread 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 SunOS 5.10 8 Feb 2001 ddi_mmap_get_model(9F)

Check Out this Related Man Page

ddi_mmap_get_model(9F)					   Kernel Functions for Drivers 				    ddi_mmap_get_model(9F)

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
"small and bold">DDI_MODCurrent2thread 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 SunOS 5.10 8 Feb 2001 ddi_mmap_get_model(9F)
Man Page