Check-in Number:
|
4216 | |
Date: |
2001-Jul-19 14:28:15 (local)
2001-Jul-19 12:28:15 (UTC) |
User: | simons |
Branch: | |
Comment: |
Split the various encoding and decoding routines into separate files
so that the linker may pull them in separately. |
Tickets: |
|
Inspections: |
|
Files: |
|
ossp-pkg/xds/Makefile 1.15 -> 1.16
--- Makefile 2001/07/18 18:26:32 1.15
+++ Makefile 2001/07/19 12:28:15 1.16
@@ -16,8 +16,9 @@
OBJS = decode.o destroy.o encode.o getbuffer.o init.o register.o \
setbuffer.o unregister.o vdecode.o vencode.o find-engine.o \
- set-capacity.o xdr-encode-int.o xdr-decode-int.o
-
+ set-capacity.o xdr-encode-int32.o xdr-encode-int64.o \
+ xdr-encode-uint32.o xdr-encode-uint64.o xdr-decode-int32.o \
+ xdr-decode-int64.o xdr-decode-uint32.o xdr-decode-uint64.o
.c.o:
$(CC) $(CPPFLAGS) $(WARNFLAGS) $(OPTFLAGS) $(CFLAGS) -c $<
|
|
ossp-pkg/xds/xdr-decode-int.c 1.2 -> 1.3
ossp-pkg/xds/xdr-decode-int32.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,72 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_decode_int32(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ int32_t* value;
+ u_int32_t tmp;
+
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+ if (buffer_size < 4)
+ return XDS_ERR_UNDERFLOW;
+
+ /* Get value and format it into the buffer. */
+
+ value = va_arg(*args, int32_t*);
+ assert(value != NULL);
+
+ if (((u_int8_t*)buffer)[0] & 0x80)
+ { /* negative number */
+ tmp = ((u_int8_t*)buffer)[0]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[1]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[2]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[3];
+ tmp = 0 - tmp;
+ *value = 0 - (int32_t)tmp;
+ }
+ else
+ { /* positive number */
+ *value = ((u_int8_t*)buffer)[0]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[1]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[2]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[3];
+ }
+
+ /* Done. */
+
+ return 4;
+ }
|
|
ossp-pkg/xds/xdr-decode-int64.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,80 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_decode_int64(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ int64_t* value;
+ u_int64_t tmp;
+
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+ if (buffer_size < 8)
+ return XDS_ERR_UNDERFLOW;
+
+ /* Get value and format it into the buffer. */
+
+ value = va_arg(*args, int64_t*);
+ assert(value != NULL);
+
+ if (((u_int8_t*)buffer)[0] & 0x80)
+ { /* negative number */
+ tmp = ((u_int8_t*)buffer)[0]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[1]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[2]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[3]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[4]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[5]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[6]; tmp = tmp << 8;
+ tmp += ((u_int8_t*)buffer)[7];
+ tmp = 0 - tmp;
+ *value = 0 - (int64_t)tmp;
+ }
+ else
+ { /* positive number */
+ *value = ((u_int8_t*)buffer)[0]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[1]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[2]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[3]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[4]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[5]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[6]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[7];
+ }
+
+ /* Done. */
+
+ return 8;
+ }
|
|
ossp-pkg/xds/xdr-decode-uint32.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,59 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_decode_uint32(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ u_int32_t* value;
+
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+ if (buffer_size < 4)
+ return XDS_ERR_UNDERFLOW;
+
+ /* Get value and format it into the buffer. */
+
+ value = va_arg(*args, u_int32_t*);
+ assert(value != NULL);
+
+ *value = ((u_int8_t*)buffer)[0]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[1]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[2]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[3];
+
+ /* Done. */
+
+ return 4;
+ }
|
|
ossp-pkg/xds/xdr-decode-uint64.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,63 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_decode_uint64(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ u_int64_t* value;
+
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+ if (buffer_size < 8)
+ return XDS_ERR_UNDERFLOW;
+
+ /* Get value and format it into the buffer. */
+
+ value = va_arg(*args, u_int64_t*);
+ assert(value != NULL);
+
+ *value = ((u_int8_t*)buffer)[0]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[1]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[2]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[3]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[4]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[5]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[6]; *value = *value << 8;
+ *value += ((u_int8_t*)buffer)[7];
+
+ /* Done. */
+
+ return 8;
+ }
|
|
ossp-pkg/xds/xdr-encode-int.c 1.3 -> 1.4
ossp-pkg/xds/xdr-encode-int32.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,65 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_encode_int32(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(buffer_size != 0);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+
+ /* Get value and format it into the buffer. */
+
+ if (buffer_size >= 4)
+ {
+ u_int32_t tmp;
+ int32_t value = va_arg(*args, u_int32_t);
+ if (value < 0)
+ {
+ value = 0 - value;
+ tmp = 0 - (u_int32_t)value;
+ }
+ else
+ tmp = (u_int32_t)value;
+ ((u_int8_t*)buffer)[0] = (tmp >> 24) & 0x000000ff;
+ ((u_int8_t*)buffer)[1] = (tmp >> 16) & 0x000000ff;
+ ((u_int8_t*)buffer)[2] = (tmp >> 8) & 0x000000ff;
+ ((u_int8_t*)buffer)[3] = (tmp >> 0) & 0x000000ff;
+ }
+
+ /* Done. */
+
+ return 4;
+ }
|
|
ossp-pkg/xds/xdr-encode-int64.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,69 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_encode_int64(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(buffer_size != 0);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+
+ /* Get value and format it into the buffer. */
+
+ if (buffer_size >= 8)
+ {
+ u_int64_t tmp;
+ int64_t value = va_arg(*args, u_int64_t);
+ if (value < 0)
+ {
+ value = 0 - value;
+ tmp = 0 - (u_int64_t)value;
+ }
+ else
+ tmp = (u_int64_t)value;
+ ((u_int8_t*)buffer)[0] = (tmp >> 56) & 0x000000ff;
+ ((u_int8_t*)buffer)[1] = (tmp >> 48) & 0x000000ff;
+ ((u_int8_t*)buffer)[2] = (tmp >> 40) & 0x000000ff;
+ ((u_int8_t*)buffer)[3] = (tmp >> 32) & 0x000000ff;
+ ((u_int8_t*)buffer)[4] = (tmp >> 24) & 0x000000ff;
+ ((u_int8_t*)buffer)[5] = (tmp >> 16) & 0x000000ff;
+ ((u_int8_t*)buffer)[6] = (tmp >> 8) & 0x000000ff;
+ ((u_int8_t*)buffer)[7] = (tmp >> 0) & 0x000000ff;
+ }
+
+ /* Done. */
+
+ return 8;
+ }
|
|
ossp-pkg/xds/xdr-encode-uint32.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,57 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_encode_uint32(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(buffer_size != 0);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+
+ /* Get value and format it into the buffer. */
+
+ if (buffer_size >= 4)
+ {
+ u_int32_t value = va_arg(*args, u_int32_t);
+ ((u_int8_t*)buffer)[0] = (value >> 24) & 0x000000ff;
+ ((u_int8_t*)buffer)[1] = (value >> 16) & 0x000000ff;
+ ((u_int8_t*)buffer)[2] = (value >> 8) & 0x000000ff;
+ ((u_int8_t*)buffer)[3] = (value >> 0) & 0x000000ff;
+ }
+
+ /* Done. */
+
+ return 4;
+ }
|
|
ossp-pkg/xds/xdr-encode-uint64.c -> 1.1
*** /dev/null Sat Nov 23 01:03:10 2024
--- - Sat Nov 23 01:03:28 2024
***************
*** 0 ****
--- 1,61 ----
+ /*
+ XDS - OSSP Extensible Data Serialization Library
+ Copyright (c) 2001 The OSSP Project (http://www.ossp.org/)
+ Copyright (c) 2001 Cable & Wireless Deutschland (http://www.cw.com/de/)
+
+ This file is part of OSSP XDS, an extensible data serialization
+ library which can be found at http://www.ossp.com/pkg/xds/.
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+ #include <assert.h>
+ #include <sys/types.h>
+ #include "internal.h"
+
+ int xdr_encode_uint64(xds_t* xds, void* engine_context, void* buffer, size_t buffer_size, va_list* args)
+ {
+ /* Consistency checks. */
+
+ assert(xds != NULL);
+ assert(buffer != NULL);
+ assert(buffer_size != 0);
+ assert(args != NULL);
+ if (xds == NULL || buffer == NULL || buffer_size == 0 || args == NULL)
+ return XDS_ERR_INVALID_ARG;
+
+ /* Get value and format it into the buffer. */
+
+ if (buffer_size >= 8)
+ {
+ u_int64_t value = va_arg(*args, u_int64_t);
+ ((u_int8_t*)buffer)[0] = (value >> 56) & 0x000000ff;
+ ((u_int8_t*)buffer)[1] = (value >> 48) & 0x000000ff;
+ ((u_int8_t*)buffer)[2] = (value >> 40) & 0x000000ff;
+ ((u_int8_t*)buffer)[3] = (value >> 32) & 0x000000ff;
+ ((u_int8_t*)buffer)[4] = (value >> 24) & 0x000000ff;
+ ((u_int8_t*)buffer)[5] = (value >> 16) & 0x000000ff;
+ ((u_int8_t*)buffer)[6] = (value >> 8) & 0x000000ff;
+ ((u_int8_t*)buffer)[7] = (value >> 0) & 0x000000ff;
+ }
+
+ /* Done. */
+
+ return 8;
+ }
|
|