RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
include
machine
_kernel_uio.h
Go to the documentation of this file.
1
/*-
2
* SPDX-License-Identifier: BSD-3-Clause
3
*
4
* Copyright (c) 1982, 1986, 1993, 1994
5
* The Regents of the University of California. All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* 3. Neither the name of the University nor the names of its contributors
16
* may be used to endorse or promote products derived from this software
17
* without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29
* SUCH DAMAGE.
30
*
31
* @(#)uio.h 8.5 (Berkeley) 2/22/94
32
* $FreeBSD: head/sys/sys/uio.h 331621 2018-03-27 15:20:03Z brooks $
33
*/
34
43
44
#if defined(_SYS_UIO_H_) && defined(_KERNEL)
45
46
struct
uio {
47
struct
iovec *uio_iov;
/* scatter/gather list */
48
int
uio_iovcnt;
/* length of scatter/gather list */
49
off_t uio_offset;
/* offset in target object */
50
ssize_t uio_resid;
/* remaining bytes to process */
51
enum
uio_seg uio_segflg;
/* address space */
52
enum
uio_rw uio_rw;
/* operation */
53
struct
thread *uio_td;
/* owner */
54
};
55
56
/*
57
* Limits
58
*
59
* N.B.: UIO_MAXIOV must be no less than IOV_MAX from <sys/syslimits.h>
60
* which in turn must be no less than _XOPEN_IOV_MAX from <limits.h>. If
61
* we ever make this tunable (probably pointless), then IOV_MAX should be
62
* removed from <sys/syslimits.h> and applications would be expected to use
63
* sysconf(3) to find out the correct value, or else assume the worst
64
* (_XOPEN_IOV_MAX). Perhaps UIO_MAXIOV should be simply defined as
65
* IOV_MAX.
66
*/
67
#define UIO_MAXIOV 1024
/* max 1K of iov's */
68
69
struct
vm_object;
70
struct
vm_page;
71
struct
bus_dma_segment;
72
73
struct
uio *cloneuio(
struct
uio *uiop);
74
int
copyiniov(
const
struct
iovec *iovp, u_int iovcnt,
struct
iovec **iov,
75
int
error);
76
int
copyinuio(
const
struct
iovec *iovp, u_int iovcnt,
struct
uio **uiop);
77
int
copyout_map(
struct
thread *td, vm_offset_t *addr,
size_t
sz);
78
int
copyout_unmap(
struct
thread *td, vm_offset_t addr,
size_t
sz);
79
int
physcopyin(
void
*src, vm_paddr_t dst,
size_t
len);
80
int
physcopyout(vm_paddr_t src,
void
*dst,
size_t
len);
81
int
physcopyin_vlist(
struct
bus_dma_segment *src, off_t offset,
82
vm_paddr_t dst,
size_t
len);
83
int
physcopyout_vlist(vm_paddr_t src,
struct
bus_dma_segment *dst,
84
off_t offset,
size_t
len);
85
int
uiomove(
void
*
cp
,
int
n,
struct
uio *uio);
86
int
uiomove_frombuf(
void
*buf,
int
buflen,
struct
uio *uio);
87
int
uiomove_fromphys(
struct
vm_page *ma[], vm_offset_t offset,
int
n,
88
struct
uio *uio);
89
int
uiomove_nofault(
void
*
cp
,
int
n,
struct
uio *uio);
90
int
uiomove_object(
struct
vm_object *obj, off_t obj_size,
struct
uio *uio);
91
92
#else
/* !_SYS_UIO_H_ || !_KERNEL */
93
#error "must be included via <sys/uio.h> in kernel space"
94
#endif
/* _SYS_UIO_H_ && _KERNEL */
cp
unsigned cp
Definition
tte.h:14
Generated by
1.18.0