diff options
author | Günther Deschner <gd@samba.org> | 2009-03-18 15:05:44 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-03-18 16:43:28 +0100 |
commit | 9ab8953d74491d7ab4a30c242aa0935efb38f857 (patch) | |
tree | 1b5fee351eb76226eed45fd1cd5bb62123bec8cc /source3/rpc_parse/parse_prs.c | |
parent | 9fdeb7f7b319dca5dbd1fdaf24f01fb19e124fe6 (diff) | |
download | samba-9ab8953d74491d7ab4a30c242aa0935efb38f857.tar.gz samba-9ab8953d74491d7ab4a30c242aa0935efb38f857.tar.bz2 samba-9ab8953d74491d7ab4a30c242aa0935efb38f857.zip |
s3-rpc_parse: move prs_uint64 to rpc_parse/parse_prs.c.
Guenther
Diffstat (limited to 'source3/rpc_parse/parse_prs.c')
-rw-r--r-- | source3/rpc_parse/parse_prs.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c index bc9202cccc..c42018947f 100644 --- a/source3/rpc_parse/parse_prs.c +++ b/source3/rpc_parse/parse_prs.c @@ -760,6 +760,30 @@ bool prs_int32(const char *name, prs_struct *ps, int depth, int32 *data32) } /******************************************************************* + Stream a uint64_struct + ********************************************************************/ +bool prs_uint64(const char *name, prs_struct *ps, int depth, uint64 *data64) +{ + if (UNMARSHALLING(ps)) { + uint32 high, low; + + if (!prs_uint32(name, ps, depth+1, &low)) + return False; + + if (!prs_uint32(name, ps, depth+1, &high)) + return False; + + *data64 = ((uint64_t)high << 32) + low; + + return True; + } else { + uint32 high = (*data64) >> 32, low = (*data64) & 0xFFFFFFFF; + return prs_uint32(name, ps, depth+1, &low) && + prs_uint32(name, ps, depth+1, &high); + } +} + +/******************************************************************* Stream a NTSTATUS ********************************************************************/ |