Merge change 2069 into donut

* changes:
  Fix one minor crashing bug when -debug-audio is used with the OSS audio backend. Moreover, properly set errno to 0 in QSOCKET_CALL macro, to avoid misleading trace messages when -debug-slirp is used
diff --git a/hw/goldfish_trace.c b/hw/goldfish_trace.c
index a9f6437..f49b704 100644
--- a/hw/goldfish_trace.c
+++ b/hw/goldfish_trace.c
@@ -205,6 +205,9 @@
     case TRACE_DEV_REG_METHOD_ENTRY:
     case TRACE_DEV_REG_METHOD_EXIT:
     case TRACE_DEV_REG_METHOD_EXCEPTION:
+    case TRACE_DEV_REG_NATIVE_ENTRY:
+    case TRACE_DEV_REG_NATIVE_EXIT:
+    case TRACE_DEV_REG_NATIVE_EXCEPTION:
         if (tracing) {
             int call_type = (offset - 4096) >> 2;
             trace_interpreted_method(value, call_type);
diff --git a/hw/goldfish_trace.h b/hw/goldfish_trace.h
index c49745b..11ed906 100644
--- a/hw/goldfish_trace.h
+++ b/hw/goldfish_trace.h
@@ -46,6 +46,9 @@
 #define TRACE_DEV_REG_METHOD_ENTRY      1024
 #define TRACE_DEV_REG_METHOD_EXIT       1025
 #define TRACE_DEV_REG_METHOD_EXCEPTION  1026
+#define TRACE_DEV_REG_NATIVE_ENTRY      1028
+#define TRACE_DEV_REG_NATIVE_EXIT       1029
+#define TRACE_DEV_REG_NATIVE_EXCEPTION  1030
 
 /* the virtual trace device state */
 typedef struct {
diff --git a/trace_common.h b/trace_common.h
index 3c4440d..fe84c1a 100644
--- a/trace_common.h
+++ b/trace_common.h
@@ -29,10 +29,13 @@
 #define kMethodEnter		0
 #define kMethodExit		1
 #define kMethodException	2
+#define kNativeEnter		4
+#define kNativeExit		5
+#define kNativeException	6
 
 // The trace identifier string must be less than 16 characters.
 #define TRACE_IDENT "qemu_trace_file"
-#define TRACE_VERSION 1
+#define TRACE_VERSION 2
 
 typedef struct TraceHeader {
     char	ident[16];