1 /* 2 * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. 3 * Copyright 2008 Red Hat, Inc. 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * This code is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License version 2 only, as 8 * published by the Free Software Foundation. 9 * 10 * This code is distributed in the hope that it will be useful, but WITHOUT 11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13 * version 2 for more details (a copy is included in the LICENSE file that 14 * accompanied this code). 15 * 16 * You should have received a copy of the GNU General Public License version 17 * 2 along with this work; if not, write to the Free Software Foundation, 18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 19 * 20 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 21 * CA 95054 USA or visit www.sun.com if you need additional information or 22 * have any questions. 23 * 24 */ 25 26 // | ... | 27 // +--------------------+ ------------------ 28 // | parameter n-1 | low addresses 29 // | ... | 30 // | parameter 0 | 31 // | call_wrapper | 32 // | frame_type | 33 // | next_frame | high addresses 34 // +--------------------+ ------------------ 35 // | ... | 36 37 class EntryFrame : public ZeroFrame { 38 private: 39 EntryFrame() : ZeroFrame() { 40 ShouldNotCallThis(); 41 } 42 43 protected: 44 enum Layout { 45 call_wrapper_off = jf_header_words, 46 header_words 47 }; 48 49 public: 50 static EntryFrame *build(ZeroStack* stack, 51 const intptr_t* parameters, 52 int parameter_words, 53 JavaCallWrapper* call_wrapper); 54 public: 55 JavaCallWrapper *call_wrapper() const { 56 return (JavaCallWrapper *) value_of_word(call_wrapper_off); 57 } 58 59 public: 60 void identify_word(int frame_index, 61 int offset, 62 char* fieldbuf, 63 char* valuebuf, 64 int buflen) const; 65 };