Commit b1a15559 authored by Lev Walkin's avatar Lev Walkin

consting

parent e824ca6c
...@@ -420,7 +420,7 @@ OBJECT_IDENTIFIER_get_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, ...@@ -420,7 +420,7 @@ OBJECT_IDENTIFIER_get_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs,
* Save the single value as an object identifier arc. * Save the single value as an object identifier arc.
*/ */
int int
OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arcval_size, int prepared_order) { OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, const void *arcval, unsigned int arcval_size, int prepared_order) {
/* /*
* The following conditions must hold: * The following conditions must hold:
* assert(arcval); * assert(arcval);
...@@ -433,7 +433,7 @@ OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arc ...@@ -433,7 +433,7 @@ OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arc
unsigned LE = 1; unsigned LE = 1;
unsigned isLittleEndian = *(char *)≤ unsigned isLittleEndian = *(char *)≤
#endif #endif
uint8_t *tp, *tend; const uint8_t *tend, *tp;
unsigned int cache; unsigned int cache;
uint8_t *bp = arcbuf; uint8_t *bp = arcbuf;
int bits; int bits;
...@@ -445,18 +445,19 @@ OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arc ...@@ -445,18 +445,19 @@ OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arc
#endif #endif
if(isLittleEndian && !prepared_order) { if(isLittleEndian && !prepared_order) {
uint8_t *a = (unsigned char *)arcval + arcval_size - 1; const uint8_t *a = (const unsigned char *)arcval + arcval_size - 1;
uint8_t *aend = (uint8_t *)arcval; const uint8_t *aend = (const uint8_t *)arcval;
uint8_t *msb = buffer + arcval_size - 1; uint8_t *msb = buffer + arcval_size - 1;
for(tp = buffer; a >= aend; tp++, a--) uint8_t *tb;
if((*tp = *a) && (tp < msb)) for(tb = buffer; a >= aend; tb++, a--)
msb = tp; if((*tb = *a) && (tb < msb))
msb = tb;
tend = &buffer[arcval_size]; tend = &buffer[arcval_size];
tp = msb; /* Most significant non-zero byte */ tp = msb; /* Most significant non-zero byte */
} else { } else {
/* Look for most significant non-zero byte */ /* Look for most significant non-zero byte */
tend = (unsigned char *)arcval + arcval_size; tend = (const unsigned char *)arcval + arcval_size;
for(tp = (uint8_t *)arcval; tp < tend - 1; tp++) for(tp = (const uint8_t *)arcval; tp < tend - 1; tp++)
if(*tp) break; if(*tp) break;
} }
...@@ -491,7 +492,7 @@ OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arc ...@@ -491,7 +492,7 @@ OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arc
} }
int int
OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, unsigned int arc_type_size, unsigned int arc_slots) { OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, const void *arcs, unsigned int arc_type_size, unsigned int arc_slots) {
uint8_t *buf; uint8_t *buf;
uint8_t *bp; uint8_t *bp;
unsigned LE = 1; /* Little endian (x86) */ unsigned LE = 1; /* Little endian (x86) */
...@@ -508,37 +509,37 @@ OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, unsigned int ar ...@@ -508,37 +509,37 @@ OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, unsigned int ar
switch(arc_type_size) { switch(arc_type_size) {
case sizeof(char): case sizeof(char):
arc0 = ((unsigned char *)arcs)[0]; arc0 = ((const unsigned char *)arcs)[0];
arc1 = ((unsigned char *)arcs)[1]; arc1 = ((const unsigned char *)arcs)[1];
break; break;
case sizeof(short): case sizeof(short):
arc0 = ((unsigned short *)arcs)[0]; arc0 = ((const unsigned short *)arcs)[0];
arc1 = ((unsigned short *)arcs)[1]; arc1 = ((const unsigned short *)arcs)[1];
break; break;
case sizeof(int): case sizeof(int):
arc0 = ((unsigned int *)arcs)[0]; arc0 = ((const unsigned int *)arcs)[0];
arc1 = ((unsigned int *)arcs)[1]; arc1 = ((const unsigned int *)arcs)[1];
break; break;
default: default:
arc1 = arc0 = 0; arc1 = arc0 = 0;
if(isLittleEndian) { /* Little endian (x86) */ if(isLittleEndian) { /* Little endian (x86) */
unsigned char *ps, *pe; const unsigned char *ps, *pe;
/* If more significant bytes are present, /* If more significant bytes are present,
* make them > 255 quick */ * make them > 255 quick */
for(ps = (unsigned char *)arcs + 1, pe = ps+arc_type_size; for(ps = (const unsigned char *)arcs + 1, pe = ps+arc_type_size;
ps < pe; ps++) ps < pe; ps++)
arc0 |= *ps, arc1 |= *(ps + arc_type_size); arc0 |= *ps, arc1 |= *(ps + arc_type_size);
arc0 <<= CHAR_BIT, arc1 <<= CHAR_BIT; arc0 <<= CHAR_BIT, arc1 <<= CHAR_BIT;
arc0 = *((unsigned char *)arcs + 0); arc0 = *((const unsigned char *)arcs + 0);
arc1 = *((unsigned char *)arcs + arc_type_size); arc1 = *((const unsigned char *)arcs + arc_type_size);
} else { } else {
unsigned char *ps, *pe; const unsigned char *ps, *pe;
/* If more significant bytes are present, /* If more significant bytes are present,
* make them > 255 quick */ * make them > 255 quick */
for(ps = (unsigned char *)arcs, pe = ps+arc_type_size - 1; ps < pe; ps++) for(ps = (const unsigned char *)arcs, pe = ps+arc_type_size - 1; ps < pe; ps++)
arc0 |= *ps, arc1 |= *(ps + arc_type_size); arc0 |= *ps, arc1 |= *(ps + arc_type_size);
arc0 = *((unsigned char *)arcs + arc_type_size - 1); arc0 = *((const unsigned char *)arcs + arc_type_size - 1);
arc1 = *((unsigned char *)arcs +(arc_type_size<< 1)-1); arc1 = *((const unsigned char *)arcs +(arc_type_size<< 1)-1);
} }
} }
...@@ -602,14 +603,14 @@ OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, unsigned int ar ...@@ -602,14 +603,14 @@ OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, unsigned int ar
*/ */
/* Copy the second (1'st) arcs[1] into the first_value */ /* Copy the second (1'st) arcs[1] into the first_value */
*fv++ = 0; *fv++ = 0;
arcs = ((char *)arcs) + arc_type_size; arcs = ((const char *)arcs) + arc_type_size;
if(isLittleEndian) { if(isLittleEndian) {
uint8_t *aend = (unsigned char *)arcs - 1; const uint8_t *aend = (const unsigned char *)arcs - 1;
uint8_t *a1 = (unsigned char *)arcs + arc_type_size - 1; const uint8_t *a1 = (const unsigned char *)arcs + arc_type_size - 1;
for(; a1 > aend; fv++, a1--) *fv = *a1; for(; a1 > aend; fv++, a1--) *fv = *a1;
} else { } else {
uint8_t *a1 = (uint8_t *)arcs; const uint8_t *a1 = (const uint8_t *)arcs;
uint8_t *aend = a1 + arc_type_size; const uint8_t *aend = a1 + arc_type_size;
for(; a1 < aend; fv++, a1++) *fv = *a1; for(; a1 < aend; fv++, a1++) *fv = *a1;
} }
/* Increase the first_value by arc0 */ /* Increase the first_value by arc0 */
...@@ -631,9 +632,9 @@ OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, unsigned int ar ...@@ -631,9 +632,9 @@ OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *oid, void *arcs, unsigned int ar
/* /*
* Save the rest of arcs. * Save the rest of arcs.
*/ */
for(arcs = ((char *)arcs) + arc_type_size, i = 2; for(arcs = ((const char *)arcs) + arc_type_size, i = 2;
i < arc_slots; i < arc_slots;
i++, arcs = ((char *)arcs) + arc_type_size) { i++, arcs = ((const char *)arcs) + arc_type_size) {
bp += OBJECT_IDENTIFIER_set_single_arc(bp, bp += OBJECT_IDENTIFIER_set_single_arc(bp,
arcs, arc_type_size, 0); arcs, arc_type_size, 0);
} }
......
...@@ -84,7 +84,7 @@ int OBJECT_IDENTIFIER_get_arcs(OBJECT_IDENTIFIER_t *_oid, ...@@ -84,7 +84,7 @@ int OBJECT_IDENTIFIER_get_arcs(OBJECT_IDENTIFIER_t *_oid,
* 0: The object was initialized with new arcs. * 0: The object was initialized with new arcs.
*/ */
int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *_oid, int OBJECT_IDENTIFIER_set_arcs(OBJECT_IDENTIFIER_t *_oid,
void *_arcs, /* i.e., unsigned int arcs[N] */ const void *_arcs, /* i.e., unsigned int arcs[N] */
unsigned int _arc_type_size, /* i.e., sizeof(arcs[0]) */ unsigned int _arc_type_size, /* i.e., sizeof(arcs[0]) */
unsigned int _arc_slots /* i.e., N */); unsigned int _arc_slots /* i.e., N */);
...@@ -130,7 +130,7 @@ int OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length, ...@@ -130,7 +130,7 @@ int OBJECT_IDENTIFIER_parse_arcs(const char *oid_text, ssize_t oid_txt_length,
int OBJECT_IDENTIFIER_get_single_arc(uint8_t *arcbuf, unsigned int arclen, int OBJECT_IDENTIFIER_get_single_arc(uint8_t *arcbuf, unsigned int arclen,
signed int add, void *value, unsigned int value_size); signed int add, void *value, unsigned int value_size);
int OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, int OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf,
void *arcval, unsigned int arcval_size, int _prepared_order); const void *arcval, unsigned int arcval_size, int _prepared_order);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment