#include <XrdSysKernelBuffer.hh>
|
ssize_t | Move (char *&, KernelBuffer &, size_t) |
|
ssize_t | Move (KernelBuffer &, char *&) |
|
ssize_t | Read (int, KernelBuffer &, uint32_t) |
|
ssize_t | Read (int, KernelBuffer &, uint32_t, int64_t) |
|
ssize_t | Send (int, KernelBuffer &) |
|
ssize_t | Write (int, KernelBuffer &, int64_t) |
|
A utility class for manipulating kernel space buffers
(Encapsulates the splice vmsplice & syscalls.)
Definition at line 45 of file XrdSysKernelBuffer.hh.
◆ KernelBuffer() [1/3]
XrdSys::KernelBuffer::KernelBuffer |
( |
| ) |
|
|
inline |
◆ KernelBuffer() [2/3]
Copy constructor - deleted.
◆ KernelBuffer() [3/3]
Definition at line 76 of file XrdSysKernelBuffer.hh.
76 : capacity( kbuff.capacity ),
77 size( kbuff.size ),
78 pipes( std::move( kbuff.pipes ) )
79 {
80 capacity = 0;
81 size = 0;
82 }
◆ ~KernelBuffer()
XrdSys::KernelBuffer::~KernelBuffer |
( |
| ) |
|
|
inline |
◆ Empty()
bool XrdSys::KernelBuffer::Empty |
( |
| ) |
const |
|
inline |
◆ IsPageAligned()
static bool XrdSys::KernelBuffer::IsPageAligned |
( |
const void * |
ptr | ) |
|
|
inlinestatic |
Check if the user space buffer is page aligned
- Parameters
-
- Returns
- : true if the buffer is page aligned, false otherwise
Definition at line 123 of file XrdSysKernelBuffer.hh.
124 {
125 return ( ( uintptr_t ( ptr ) ) % PAGE_SZ ) == 0 ;
126 }
Referenced by XrdCl::FileStateHandler::Write().
◆ operator=() [1/2]
Copy assignment operator - deleted.
◆ operator=() [2/2]
Move assignment operator.
Definition at line 92 of file XrdSysKernelBuffer.hh.
93 {
94 capacity = kbuff.capacity;
95 size = kbuff.size;
96 pipes = std::move( kbuff.pipes );
97 return *this;
98 }
◆ Move [1/2]
ssize_t Move |
( |
char *& |
ubuff, |
|
|
KernelBuffer & |
kbuff, |
|
|
size_t |
length |
|
) |
| |
|
friend |
Utility function for moving a user space buffer to kernel space.
- See also
- KernelBuffer::FromUser
Definition at line 462 of file XrdSysKernelBuffer.hh.
463 {
464 return kbuff.FromUser( ubuff, length );
465 }
◆ Move [2/2]
Utility function for moving a kernel buffer to user space.
- See also
- KernelBuffer::ToUser
Definition at line 452 of file XrdSysKernelBuffer.hh.
453 {
454 return kbuff.ToUser( ubuff );
455 }
◆ Read [1/2]
ssize_t Read |
( |
int |
fd, |
|
|
KernelBuffer & |
buffer, |
|
|
uint32_t |
length |
|
) |
| |
|
friend |
Utility function for reading data from a file descriptor into a kernel buffer.
- See also
- KernelBuffer::ReadFromFD
Definition at line 421 of file XrdSysKernelBuffer.hh.
422 {
423 return buffer.ReadFromFD( fd, length, NULL );
424 }
◆ Read [2/2]
ssize_t Read |
( |
int |
fd, |
|
|
KernelBuffer & |
buffer, |
|
|
uint32_t |
length, |
|
|
int64_t |
offset |
|
) |
| |
|
friend |
Utility function for reading data from a file descriptor into a kernel buffer.
- See also
- KernelBuffer::ReadFromFD
Definition at line 410 of file XrdSysKernelBuffer.hh.
411 {
412 return buffer.ReadFromFD( fd, length, &offset );
413 }
◆ Send
Utility function for sending data from a kernel buffer into a socket.
- See also
- KernelBuffer::WriteToFD
Definition at line 442 of file XrdSysKernelBuffer.hh.
443 {
444 return buffer.WriteToFD( fd, NULL );
445 }
◆ Write
ssize_t Write |
( |
int |
fd, |
|
|
KernelBuffer & |
buffer, |
|
|
int64_t |
offset |
|
) |
| |
|
friend |
Utility function for writing data from a kernel buffer into a file descriptor.
- See also
- KernelBuffer::WriteToFD
Definition at line 432 of file XrdSysKernelBuffer.hh.
433 {
434 return buffer.WriteToFD( fd, &offset );
435 }
The documentation for this class was generated from the following file: