X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fbacktrace.c;h=282f6b86828b0ba79b393730b5d856ce37e13847;hb=d8ae4d672673cd72285eb405a96b4ac3590a7639;hp=0999a081ecb351e9e0c530b43010cadc7c4dcf10;hpb=a14bc59fb8f27db193d74662dc9c5cb8237177ef;p=openvswitch diff --git a/lib/backtrace.c b/lib/backtrace.c index 0999a081..282f6b86 100644 --- a/lib/backtrace.c +++ b/lib/backtrace.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2010 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,11 +21,11 @@ #include #include #include "compiler.h" - -#define THIS_MODULE VLM_backtrace #include "vlog.h" -static uintptr_t UNUSED +VLOG_DEFINE_THIS_MODULE(backtrace); + +static uintptr_t OVS_UNUSED get_max_stack(void) { static const char file_name[] = "/proc/self/maps"; @@ -42,7 +42,7 @@ get_max_stack(void) for (line_number = 1; fgets(line, sizeof line, f); line_number++) { if (strstr(line, "[stack]")) { uintptr_t end; - if (sscanf(line, "%*"SCNxPTR"-%"SCNxPTR, &end) != 1) { + if (sscanf(line, "%*x-%"SCNxPTR, &end) != 1) { VLOG_WARN("%s:%d: parse error", file_name, line_number); continue; } @@ -69,16 +69,8 @@ stack_high(void) static uintptr_t stack_low(void) { -#ifdef __i386__ - uintptr_t low; - asm("movl %%esp,%0" : "=g" (low)); + uintptr_t low = (uintptr_t) &low; return low; -#else - /* This causes a warning in GCC that cannot be disabled, so use it only on - * non-x86. */ - int dummy; - return (uintptr_t) &dummy; -#endif } static bool