DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
SVR5

ovbcopy(D3)


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);

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.

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.

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 can obtain and use a kernel address which is not memory resident (an address which is paged out), DDI 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)).

Context and synchronization

All contexts.

Hardware applicability

All

Version applicability

ddi: 5, 5mp, 6, 6mp, 7, 7mp, 7.1, 7.1mp, 8, 8mp

References

bcopy(D3), copyin(D3), copyout(D3), uiomove(D3), ureadc(D3), uwritec(D3)
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005