Skip to content
Snippets Groups Projects
Commit 4fa231ed authored by Russell Bryant's avatar Russell Bryant
Browse files

fix astmm on sparc or any other architecture that doesn't allow unaligned

memory access


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@13631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 419bc78a
No related merge requests found
......@@ -38,6 +38,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/options.h"
#include "asterisk/lock.h"
#include "asterisk/strings.h"
#include "asterisk/unaligned.h"
#define SOME_PRIME 563
......@@ -104,7 +105,7 @@ static inline void *__ast_alloc_region(size_t size, const enum func_type which,
regions[hash] = reg;
reg->fence = FENCE_MAGIC;
fence = (ptr + reg->len);
*fence = FENCE_MAGIC;
put_unaligned_uint32(fence, FENCE_MAGIC);
}
ast_mutex_unlock(&reglock);
if (!reg) {
......@@ -166,7 +167,7 @@ static void __ast_free_region(void *ptr, const char *file, int lineno, const cha
fflush(mmlog);
}
}
if (*fence != FENCE_MAGIC) {
if (get_unaligned_uint32(fence) != FENCE_MAGIC) {
fprintf(stderr, "WARNING: High fence violation at %p, in %s of %s, line %d\n", reg->data, reg->func, reg->file, reg->lineno);
if (mmlog) {
fprintf(mmlog, "%ld - WARNING: High fence violation at %p, in %s of %s, line %d\n", time(NULL), reg->data, reg->func, reg->file, reg->lineno);
......@@ -316,7 +317,7 @@ static int handle_show_memory(int fd, int argc, char *argv[])
fflush(mmlog);
}
}
if (*fence != FENCE_MAGIC) {
if (get_unaligned_uint32(fence) != FENCE_MAGIC) {
fprintf(stderr, "WARNING: High fence violation at %p, in %s of %s, line %d\n", reg->data, reg->func, reg->file, reg->lineno);
if (mmlog) {
fprintf(mmlog, "%ld - WARNING: High fence violation at %p, in %s of %s, line %d\n", time(NULL), reg->data, reg->func, reg->file, reg->lineno);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment