iPXE
|
SUN ONC RPC protocol. More...
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <errno.h>
#include <byteswap.h>
#include <ipxe/socket.h>
#include <ipxe/tcpip.h>
#include <ipxe/in.h>
#include <ipxe/iobuf.h>
#include <ipxe/xfer.h>
#include <ipxe/open.h>
#include <ipxe/uri.h>
#include <ipxe/features.h>
#include <ipxe/oncrpc.h>
#include <ipxe/oncrpc_iob.h>
Go to the source code of this file.
Functions | |
size_t | oncrpc_iob_add_fields (struct io_buffer *io_buf, const struct oncrpc_field fields[]) |
size_t | oncrpc_iob_add_array (struct io_buffer *io_buf, size_t length, const void *data) |
Add an array of bytes to the end of an I/O buffer. More... | |
size_t | oncrpc_iob_add_intarray (struct io_buffer *io_buf, size_t length, const uint32_t *array) |
Add an int array to the end of an I/O buffer. More... | |
size_t | oncrpc_iob_add_cred (struct io_buffer *io_buf, const struct oncrpc_cred *cred) |
Add credential information to the end of an I/O buffer. More... | |
size_t | oncrpc_iob_get_cred (struct io_buffer *io_buf, struct oncrpc_cred *cred) |
Get credential information from the beginning of an I/O buffer. More... | |
SUN ONC RPC protocol.
Definition in file oncrpc_iob.c.
size_t oncrpc_iob_add_fields | ( | struct io_buffer * | io_buf, |
const struct oncrpc_field | fields[] | ||
) |
Definition at line 44 of file oncrpc_iob.c.
References oncrpc_field_value::array, oncrpc_field_value::cred, oncrpc_field_value::int32, oncrpc_field_value::int64, oncrpc_field_value::intarray, oncrpc_field_value::length, oncrpc_array, oncrpc_cred, oncrpc_int32, oncrpc_int64, oncrpc_intarray, oncrpc_iob_add_array(), oncrpc_iob_add_cred(), oncrpc_iob_add_int(), oncrpc_iob_add_int64(), oncrpc_iob_add_intarray(), oncrpc_iob_add_string, oncrpc_none, oncrpc_str, oncrpc_field_value::ptr, oncrpc_field_value::str, oncrpc_field::type, and oncrpc_field::value.
Referenced by oncrpc_call(), and oncrpc_iob_add_cred().
Add an array of bytes to the end of an I/O buffer.
io_buf | I/O buffer |
val | String |
size | Size of the data written |
In the ONC RPC protocol, every data is four byte paded, we add padding when necessary by using oncrpc_align()
Definition at line 103 of file oncrpc_iob.c.
References data, iob_put, length, memcpy(), memset(), oncrpc_align, and oncrpc_iob_add_int().
Referenced by oncrpc_iob_add_fields().
Add an int array to the end of an I/O buffer.
io_buf | I/O buffer |
length | Length od the array |
val | Int array |
size | Size of the data written |
Definition at line 122 of file oncrpc_iob.c.
References array, length, and oncrpc_iob_add_int().
Referenced by oncrpc_iob_add_fields().
size_t oncrpc_iob_add_cred | ( | struct io_buffer * | io_buf, |
const struct oncrpc_cred * | cred | ||
) |
Add credential information to the end of an I/O buffer.
io_buf | I/O buffer |
cred | Credential information |
size | Size of the data written |
Definition at line 141 of file oncrpc_iob.c.
References oncrpc_cred_sys::aux_gid, oncrpc_cred_sys::aux_gid_len, container_of, oncrpc_cred::flavor, oncrpc_cred_sys::gid, oncrpc_cred_sys::hostname, oncrpc_cred::length, ONCRPC_AUTH_NONE, ONCRPC_AUTH_SYS, ONCRPC_FIELD, ONCRPC_FIELD_END, oncrpc_iob_add_fields(), ONCRPC_SUBFIELD, oncrpc_cred_sys::stamp, and oncrpc_cred_sys::uid.
Referenced by oncrpc_iob_add_fields().
size_t oncrpc_iob_get_cred | ( | struct io_buffer * | io_buf, |
struct oncrpc_cred * | cred | ||
) |
Get credential information from the beginning of an I/O buffer.
io_buf | I/O buffer |
cred | Struct where the information will be saved |
size | Size of the data read |
Definition at line 189 of file oncrpc_iob.c.
References io_buffer::data, oncrpc_cred::flavor, iob_pull, oncrpc_cred::length, NULL, and oncrpc_iob_get_int.