1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00

r8105: Add ejsrpc push/pull functions for uint16 and uint8.

This commit is contained in:
Tim Potter 2005-07-04 01:31:34 +00:00 committed by Gerald (Jerry) Carter
parent ff5549e87f
commit ee27943e21
2 changed files with 55 additions and 12 deletions

View File

@ -95,6 +95,50 @@ static NTSTATUS mprSetVar(struct MprVar *v, const char *name, struct MprVar val)
} }
/*
pull a uint8 from a mpr variable to a C element
*/
NTSTATUS ejs_pull_uint8(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint8_t *r)
{
struct MprVar *var;
var = mprGetVar(v, name);
if (var == NULL) {
return NT_STATUS_INVALID_PARAMETER_MIX;
}
*r = mprVarToInteger(var);
return NT_STATUS_OK;
}
NTSTATUS ejs_push_uint8(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint8_t r)
{
return mprSetVar(v, name, mprCreateIntegerVar(r));
}
/*
pull a uint16 from a mpr variable to a C element
*/
NTSTATUS ejs_pull_uint16(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint16_t *r)
{
struct MprVar *var;
var = mprGetVar(v, name);
if (var == NULL) {
return NT_STATUS_INVALID_PARAMETER_MIX;
}
*r = mprVarToInteger(var);
return NT_STATUS_OK;
}
NTSTATUS ejs_push_uint16(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint16_t r)
{
return mprSetVar(v, name, mprCreateIntegerVar(r));
}
/* /*
pull a uint32 from a mpr variable to a C element pull a uint32 from a mpr variable to a C element
*/ */

View File

@ -30,19 +30,18 @@ typedef NTSTATUS (*ejs_push_function_t)(struct ejs_rpc *, struct MprVar *, const
NTSTATUS ejs_pull_rpc(struct MprVar *v, void *ptr, ejs_pull_function_t ejs_pull); NTSTATUS ejs_pull_rpc(struct MprVar *v, void *ptr, ejs_pull_function_t ejs_pull);
NTSTATUS ejs_push_rpc(struct MprVar *v, const void *ptr, ejs_push_function_t ejs_push); NTSTATUS ejs_push_rpc(struct MprVar *v, const void *ptr, ejs_push_function_t ejs_push);
NTSTATUS ejs_pull_uint8(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint8_t *r);
NTSTATUS ejs_push_uint8(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint8_t r);
NTSTATUS ejs_pull_uint16(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint16_t *r);
NTSTATUS ejs_push_uint16(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint16_t r);
NTSTATUS ejs_pull_uint32(struct ejs_rpc *ejs, NTSTATUS ejs_pull_uint32(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint32_t *r); struct MprVar *v, const char *name, uint32_t *r);
NTSTATUS ejs_push_uint32(struct ejs_rpc *ejs, NTSTATUS ejs_push_uint32(struct ejs_rpc *ejs,
struct MprVar *v, const char *name, uint32_t r); struct MprVar *v, const char *name, uint32_t r);
/* echo calls */
#include "librpc/gen_ndr/ndr_echo.h"
NTSTATUS ejs_pull_echo_AddOne(struct ejs_rpc *ejs,
struct MprVar *v, struct echo_AddOne *r);
NTSTATUS ejs_push_echo_AddOne(struct ejs_rpc *ejs,
struct MprVar *v,
const struct echo_AddOne *r);