bp_mapin(D3) bp_mapin(D3)
NAME
bp_mapin - allocate virtual address space for buffer page list
SYNOPSIS
#include <sys/types.h>
#include <sys/buf.h>
#include <sys/ddi.h>
void bp_mapin(struct buf_t *bp);
Arguments
bp Pointer to the buffer header structure.
DESCRIPTION
The bp_mapin function is used to map virtual address space to
a page list maintained by the buffer header [see buf(D4)]
during a paged-I/O request.
Return Values
None
USAGE
A paged-I/O request is identified by the B_PAGEIO flag being
set in the b_flags field of the buffer header passed to a
driver's strategy(D2) routine. Before calling bp_mapin, the
offset of the location in the first page where the I/O is to
begin is stored in the b_un.b_addr field of the buf structure
referenced by bp (for strategy routines, this is done for the
driver by the system).
bp_mapin allocates system virtual address space, maps that
space to the page list, and returns the new virtual address in
the b_un.b_addr field of the buf structure. This address is
the virtual address of the start of the page mappings, plus
the offset given by the original value of bp->b_un.b_addr.
After the I/O completes, the virtual address space can be
deallocated using the bp_mapout(D3) function.
B_PAGEIO won't be set unless the driver has the D_NOBRKUP flag
set [see devflag(D1)].
Level
Base only.
Synchronization Constraints
This routine may sleep if virtual space is not immediately
available.
Copyright 1994 Novell, Inc. Page 1
bp_mapin(D3) bp_mapin(D3)
Driver-defined basic locks and read/write locks may not be
held across calls to this function.
Driver-defined sleep locks may be held across calls to this
function.
REFERENCES
bp_mapout(D3), buf(D4), devflag(D1), strategy(D2)
NOTICES
Portability
All processors
Applicability
ddi: 1, 2, 3, 4, 5, 5mp, 6, 6mp, 7, 7mp
Copyright 1994 Novell, Inc. Page 2