diff --git a/skeletons/asn_system.h b/skeletons/asn_system.h index 6dcca0eb..f920efc9 100644 --- a/skeletons/asn_system.h +++ b/skeletons/asn_system.h @@ -26,6 +26,12 @@ #define snprintf _snprintf #define vsnprintf _vsnprintf +/* To avoid linking with ws2_32.lib, here's the definition of ntohl() */ +#define sys_ntohl(l) ((((l) << 24) & 0xff000000) + | (((l) << 16) & 0xff0000) + | (((l) << 8) & 0xff00) + | ((l) & 0xff)) + #ifdef _MSC_VER /* MSVS.Net */ #ifndef __cplusplus #define inline __inline @@ -74,6 +80,9 @@ typedef unsigned int uint32_t; #endif /* defined(sun) */ #endif +#include /* for ntohl() */ +#define sys_ntohl(foo) ntohl(foo) + #endif /* defined(__vxworks) */ #endif /* WIN32 */ diff --git a/skeletons/constr_SET.c b/skeletons/constr_SET.c index 2c5d5d0b..ecf56617 100644 --- a/skeletons/constr_SET.c +++ b/skeletons/constr_SET.c @@ -6,12 +6,6 @@ #include #include -#ifndef WIN32 -#include /* for ntohl() */ -#else -#include /* for ntohl() */ -#endif - /* Check that all the mandatory members are present */ static int _SET_is_populated(asn_TYPE_descriptor_t *td, void *st); @@ -411,7 +405,7 @@ _SET_is_populated(asn_TYPE_descriptor_t *td, void *st) { midx = edx/(8 * sizeof(specs->_mandatory_elements[0])); pres = ((unsigned int *)((char *)st+specs->pres_offset))[midx]; - must = ntohl(specs->_mandatory_elements[midx]); + must = sys_ntohl(specs->_mandatory_elements[midx]); if((pres & must) == must) { /*