49 #define SET_LAST_FRAME( x ) ( (x) | 1 << 31 ) 50 #define GET_FRAME_SIZE( x ) ( (x) & ~( 1 << 31 ) ) 53 #define ONCRPC_REPLY 1 63 .description =
"User ID",
65 .type = &setting_type_uint32
70 .description =
"Group ID",
72 .type = &setting_type_uint32
172 switch ( fields[i].
type ) {
192 fields[i].
value.intarray.length;
217 if ( ! reply || ! io_buf )
242 reply->
data = io_buf;
const char product_short_name[]
Product short name string.
#define ONCRPC_FIELD(type, value)
#define iob_pull(iobuf, len)
size_t oncrpc_iob_add_fields(struct io_buffer *io_buf, const struct oncrpc_field fields[])
#define EINVAL
Invalid argument.
#define ONCRPC_AUTH_SYS
ONC RPC System Authentication (also called UNIX Authentication)
struct oncrpc_cred * verifier
#define oncrpc_strlen(str)
Calculate the length of a string, including padding bytes.
Dynamic Host Configuration Protocol.
#define ONCRPC_VERS
ONC RCP Version.
const struct setting uid_setting __setting(SETTING_AUTH, uid)
int xfer_deliver_iob(struct interface *intf, struct io_buffer *iobuf)
Deliver datagram as I/O buffer without metadata.
struct oncrpc_cred * verifier
#define oncrpc_align(size)
Enusure that size is a multiple of four.
#define ONCRPC_AUTH_NONE
ONC RPC Null Authentication.
uint32_t type
Operating system type.
#define SETTING_AUTH
Authentication settings.
uint8_t size
Entry size (in 32-bit words)
unsigned long long uint64_t
#define SET_LAST_FRAME(x)
Set most significant bit to 1.
void oncrpc_init_session(struct oncrpc_session *session, struct oncrpc_cred *credential, struct oncrpc_cred *verifier, uint32_t prog_name, uint32_t prog_vers)
Prepare an ONC RPC session structure to be used by the ONC RPC layer.
Uniform Resource Identifiers.
struct io_buffer * alloc_iob(size_t len)
Allocate I/O buffer.
int oncrpc_call(struct interface *intf, struct oncrpc_session *session, uint32_t proc_name, const struct oncrpc_field fields[])
Data transfer interfaces.
#define DHCP_EB_GID
Group ID.
#define ENOMEM
Not enough space.
#define iob_disown(iobuf)
Disown an I/O buffer.
#define oncrpc_iob_get_int(buf)
Get a 32 bits integer from the beginning of an I/O buffer.
union oncrpc_field_value value
pseudo_bit_t value[0x00020]
#define __unused
Declare a variable or data structure as unused.
int oncrpc_init_cred_sys(struct oncrpc_cred_sys *auth_sys)
Initialize an ONC RPC AUTH SYS credential structure.
enum oncrpc_field_type type
Transport-network layer interface.
int fetch_string_setting_copy(struct settings *settings, const struct setting *setting, char **data)
Fetch value of string setting.
int oncrpc_get_reply(struct oncrpc_session *session __unused, struct oncrpc_reply *reply, struct io_buffer *io_buf)
Parse an I/O buffer to extract a ONC RPC REPLY.
size_t oncrpc_compute_size(const struct oncrpc_field fields[])
struct oncrpc_cred oncrpc_auth_none
AUTH NONE authentication flavor.
char * strdup(const char *src)
Duplicate string.
Data transfer interface opening.
unsigned long fetch_uintz_setting(struct settings *settings, const struct setting *setting)
Fetch value of unsigned integer setting, or zero.
#define GET_FRAME_SIZE(x)
#define ENOBUFS
No buffer space available.
struct ena_aq_header header
Header.
#define ENOSYS
Function not implemented.
struct oncrpc_cred * credential
#define NULL
NULL pointer (VOID *)
struct oncrpc_cred credential
const struct oncrpc_cred * cred
#define DHCP_EB_UID
User ID.