Windows PowerShell command on Get-command ddi_segmap_setup
MyWebUniversity

Manual Pages for UNIX Operating System command usage for man ddi_segmap_setup

Kernel Functions for Drivers ddi_segmap(9F)

NAME

ddi_segmap, ddi_segmap_setup - set up a user mapping using

seg_dev

SYNOPSIS

#include

#include

#include

int ddi_segmap(dev_t dev, off_t offset, struct as *asp,

caddr_t *addrp, off_t len, uint_t prot,

uint_t maxprot, uint_t flags, cred_t *credp);

int ddi_segmap_setup(dev_t dev, off_t offset, struct as *asp,

caddr_t *addrp, off_t len, uint_t prot,

uint_t maxprot, uint_t flags, cred_t *credp,

ddi_device_acc_attr_t *accattrp, uint_t rnumber);

INTERFACE LEVEL

These interfaces are obsolete. See devmap(9E) for an alter-

native to ddi_segmap(). Use devmap_setup(9F) instead of

ddi_segmap_setup().

PARAMETERS

dev The device whose memory is to be mapped. offset The offset within device memory at which the mapping begins. asp An opaque pointer to the user address space into which the device memory should be mapped. addrp Pointer to the starting address within the user address space to which the device memory should be mapped. len Length (in bytes) of the memory to be mapped. prot A bit field that specifies the protections. Some combinations of possible settings are:

PROT_READ Read access is desired.

SunOS 5.11 Last change: 17 Nov 2003 1

Kernel Functions for Drivers ddi_segmap(9F)

PROT_WRITE Write access is desired.

PROT_EXEC Execute access is desired.

PROT_USER User-level access is desired (the

mapping is being done as a result of a mmap(2) system call).

PROT_ALL All access is desired.

maxprot Maximum protection flag possible for attempted

mapping (the PROT_WRITE bit may be masked out if

the user opened the special file read-only). If

(maxprot & prot) != prot then there is an access violation. flags Flags indicating type of mapping. Possible values are (other bits may be set):

MAP_PRIVATE Changes are private.

MAP_SHARED Changes should be shared.

MAP_FIXED The user specified an address in

*addrp rather than letting the system pick and address. credp Pointer to user credential structure.

ddi_segmap_setup()

dev_acc_attr Pointer to a ddi_device_acc_attr(9S) struc-

ture which contains the device access attributes to apply to this mapping. rnumber Index number to the register address space set.

DESCRIPTION

SunOS 5.11 Last change: 17 Nov 2003 2

Kernel Functions for Drivers ddi_segmap(9F)

Future releases of Solaris will provide this function for binary and source compatibility. However, for increased

functionality, use ddi_devmap_segmap(9F) instead. See

ddi_devmap_segmap(9F) for details.

ddi_segmap() and ddi_segmap_setup() set up user mappings to

device space. When setting up the mapping, the ddi_segmap()

and ddi_segmap_setup() routines call the mmap(9E) entry

point to validate the range to be mapped. When a user pro-

cess accesses the mapping, the drivers mmap(9E) entry point is again called to retrieve the page frame number that needs to be loaded. The mapping translations for that page are then loaded on behalf of the driver by the DDI framework.

ddi_segmap() is typically used as the segmap(9E) entry in

the cb_ops(9S) structure for those devices that do not

choose to provide their own segmap(9E) entry point. How-

ever, some drivers may have their own segmap(9E) entry point to do some initial processing on the parameters and then

call ddi_segmap() to establish the default memory mapping.

ddi_segmap_setup() is used in the drivers segmap(9E) entry

point to set up the mapping and assign device access attri-

butes to that mapping. rnumber specifies the register set representing the range of device memory being mapped. See

ddi_device_acc_attr(9S) for details regarding what device

access attributes are available.

ddi_segmap_setup() cannot be used directly in the cb_ops(9S)

structure and requires a driver to have a segmap(9E) entry point.

RETURN VALUES

ddi_segmap() and ddi_segmap_setup() return the following

values: 0 Successful completion.

Non-zero An error occurred. In particular, they return

ENXIO if the range to be mapped is invalid.

CONTEXT

ddi_segmap() and ddi_segmap_setup() can be called from user

or kernel context only.

SunOS 5.11 Last change: 17 Nov 2003 3

Kernel Functions for Drivers ddi_segmap(9F)

ATTRIBUTES

See attributes(5) for a description of the following attri-

butes:

____________________________________________________________

| ATTRIBUTE TYPE | ATTRIBUTE VALUE |

|_____________________________|_____________________________|

| Stability Level | Obsolete |

|_____________________________|_____________________________|

SEE ALSO

mmap(2), attributes(5), devmap(9E), mmap(9E), segmap(9E),

devmap_setup(9F), cb_ops(9S), ddi_device_acc_attr(9S)

Writing Device Drivers

SunOS 5.11 Last change: 17 Nov 2003 4




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™