|
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.
1.8.15