You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gs...@apache.org on 2008/03/03 13:17:02 UTC
svn commit: r633059 - in /harmony/enhanced/drlvm/trunk/vm/port/include:
port_crash_handler.h port_frame_info.h
Author: gshimansky
Date: Mon Mar 3 04:17:01 2008
New Revision: 633059
URL: http://svn.apache.org/viewvc?rev=633059&view=rev
Log:
Applied patch 0007 from HARMONY-5504
[drlvm][port] Restructure DRLVM's sources to extract most of platform dependent code into portlib
Added:
harmony/enhanced/drlvm/trunk/vm/port/include/port_frame_info.h (with props)
Modified:
harmony/enhanced/drlvm/trunk/vm/port/include/port_crash_handler.h
Modified: harmony/enhanced/drlvm/trunk/vm/port/include/port_crash_handler.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/include/port_crash_handler.h?rev=633059&r1=633058&r2=633059&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/include/port_crash_handler.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/port/include/port_crash_handler.h Mon Mar 3 04:17:01 2008
@@ -23,10 +23,8 @@
* @file Interface to signal handling and crash handling functions.
*/
-#include "open/types.h"
-// FIXME: needed for Register structure. Should be changed to another
-// header when Registers defition is moved to.
-#include "vm_core_types.h"
+#include "open/platform_types.h"
+#include "port_frame_info.h"
#ifdef __cplusplus
extern "C"
@@ -119,12 +117,15 @@
* @param registrations - Pointer to an array of
* <code>port_signal_handler_registration structures.
* @param count - number of signal registrations. Zero is allowed
+ * @param unwind_callback - VM function for unwinding compiled
+ * stack frames.
* @return <code>TRUE</code> if initalization is successful.
* <code>FALSE</code> if initialization failed.
*/
Boolean port_init_crash_handler(
port_signal_handler_registration *registrations,
- unsigned count);
+ unsigned count
+ port_unwind_compiled_frame unwind_callback);
/**
* Crash handler output flags.
Added: harmony/enhanced/drlvm/trunk/vm/port/include/port_frame_info.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/include/port_frame_info.h?rev=633059&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/include/port_frame_info.h (added)
+++ harmony/enhanced/drlvm/trunk/vm/port/include/port_frame_info.h Mon Mar 3 04:17:01 2008
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef _PORT_FRAME_INFO_
+#define _PORT_FRAME_INFO_
+
+#include "open/platform_types.h"
+
+/**
+ * @file Interface to stack iteration from inside of port library
+ * subcomponents
+ */
+
+/**
+ * Structure describing stack frame information for stack iteration
+ */
+typedef struct {
+ /**
+ * Method class name executed at specified stack frame
+ */
+ char *method_class_name;
+ /**
+ * Method name executed at specified stack frame
+ */
+ char *method_name;
+ /**
+ * Method signature executed at specified stack frame
+ */
+ char *method_signature;
+ /**
+ * Method source file executed at specified stack frame
+ */
+ char *source_file_name;
+ /**
+ * Source line number
+ */
+ int source_line_number;
+ /**
+ * Stack iteration internal state. It should be initialized with
+ * NULL when structure is created. In case
+ * port_unwind_compiled_frame returns value greater than zero, it
+ * should be initialized with a pointer to a buffer of memory of
+ * this value size, and this buffer should be filled with
+ * zeroes. When iteration goes on, this buffer contains iteration
+ * internal data, like information about inlined methods depth.
+ */
+ void *iteration_state;
+} port_stack_frame_info;
+
+/**
+ * Callback function type for unwinding stack frames. Function is
+ * specific to the stack type and can unwind only the stack types of
+ * its component.
+ *
+ * @param regs - Register context of the current stack frame, function
+ * updates it to a new stack frame if unwinding succeeds.
+ * @param frame_info - Pointer to stack frame information structure,
+ * it is filled in with information for the current (not unwound!) stack
+ * frame.
+ * @return Positive number in case stack iterator buffer has to be
+ * allocated in frame_info->iteration_state. Zero if unwinding is
+ * successful and -1 if unwinding is not successful.
+ */
+typedef int (port_unwind_compiled_frame *)(Registers *regs,
+ port_stack_frame_info *frame_info);
+
+#endif // _PORT_FRAME_INFO_
+
Propchange: harmony/enhanced/drlvm/trunk/vm/port/include/port_frame_info.h
------------------------------------------------------------------------------
svn:eol-style = native