*/
/**
- * @file internal.h
- * common internal api header.
+ * @file libavutil/internal.h
+ * common internal API header
*/
#ifndef AVUTIL_INTERNAL_H
#include <stdint.h>
#include <stddef.h>
#include <assert.h>
+#include "config.h"
#include "common.h"
+#include "mem.h"
#include "timer.h"
#ifndef attribute_align_arg
#endif
#ifndef INT_BIT
-# if INT_MAX != 2147483647
-# define INT_BIT 64
-# else
-# define INT_BIT 32
-# endif
+# define INT_BIT (CHAR_BIT * sizeof(int))
#endif
#if ( defined(__PIC__) || defined(__pic__) ) && ! defined(PIC)
# define PIC
#endif
-#include "config.h"
-
#ifndef offsetof
# define offsetof(T,F) ((unsigned int)((char *)&((T *)0)->F))
#endif
);\
ret;\
})
-#elif HAVE_ARMV6
+#elif HAVE_ARMV6 && HAVE_INLINE_ASM
static inline av_const int FASTDIV(int a, int b)
{
int r, t;
: "=&r"(r), "=&r"(t) : "r"(a), "r"(b), "r"(ff_inverse));
return r;
}
-#elif ARCH_ARM
+#elif ARCH_ARM && HAVE_INLINE_ASM
static inline av_const int FASTDIV(int a, int b)
{
int r, t;
}
#endif
-/* avoid usage of various functions */
+/* avoid usage of dangerous/inappropriate system functions */
#undef malloc
#define malloc please_use_av_malloc
#undef free
#undef time
#define time time_is_forbidden_due_to_security_issues
#undef rand
-#define rand rand_is_forbidden_due_to_state_trashing_use_av_random
+#define rand rand_is_forbidden_due_to_state_trashing_use_av_lfg_get
#undef srand
-#define srand srand_is_forbidden_due_to_state_trashing_use_av_random_init
+#define srand srand_is_forbidden_due_to_state_trashing_use_av_lfg_init
#undef random
-#define random random_is_forbidden_due_to_state_trashing_use_av_random
+#define random random_is_forbidden_due_to_state_trashing_use_av_lfg_get
#undef sprintf
#define sprintf sprintf_is_forbidden_due_to_security_issues_use_snprintf
#undef strcat
#endif /* HAVE_TRUNCF */
/**
- * Returns NULL if CONFIG_SMALL is true otherwise the argument
- * without modifications, used to disable the definition of strings
+ * Returns NULL if CONFIG_SMALL is true, otherwise the argument
+ * without modification. Used to disable the definition of strings
* (for example AVCodec long_names).
*/
#if CONFIG_SMALL