ovbcopy(D3) ovbcopy(D3)
NAME
ovbcopy - copy data between overlapping address locations in
the kernel
SYNOPSIS
#include <sys/types.h>
#include <sys/ddi.h>
void ovbcopy(caddr_t from, caddr_t to, size_t bcount);
Arguments
from Source address from which the copy is made.
to Destination address to which the copy is made.
bcount Number of bytes to be copied.
DESCRIPTION
ovbcopy, like bcopy(D3), copies bcount bytes from one kernel
address to another. However, unlike bcopy, with ovbcopy the
source address from and destination address to can overlap.
Return Values
None
USAGE
The source and destination address ranges must both be within
the kernel address space and must be memory resident. No
range checking is done. Since there is no mechanism by which
drivers that conform to the rules of the DDI/DKI can obtain
and use a kernel address which is not memory resident (an
address which is paged out), DDI/DKI conforming drivers can
assume that any address to which they have access is memory
resident and therefore a valid argument to ovbcopy. Addresses
within user address space are not valid arguments, and
specifying such an address may cause the driver to corrupt the
system in an unpredictable way. For copying between kernel
and user space, drivers must use an appropriate function
defined for that purpose (for example, copyin(D3),
copyout(D3), uiomove(D3), ureadc(D3), or uwritec(D3)).
Level
Initialization, Base or Interrupt.
Synchronization Constraints
Does not sleep.
Copyright 1994 Novell, Inc. Page 1
ovbcopy(D3) ovbcopy(D3)
Driver-defined basic locks, read/write locks, and sleep locks
may be held across calls to this function.
REFERENCES
bcopy(D3), copyin(D3), copyout(D3), uiomove(D3), ureadc(D3),
uwritec(D3)
NOTICES
Portability
All processors
Applicability
ddi: 5, 5mp, 6, 6mp, 7, 7mp
Copyright 1994 Novell, Inc. Page 2