1094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea/* 2094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * Copyright 2012, The Android Open Source Project 3094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * 4094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * Licensed under the Apache License, Version 2.0 (the "License"); 5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * you may not use this file except in compliance with the License. 6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * You may obtain a copy of the License at 7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * 8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * http://www.apache.org/licenses/LICENSE-2.0 9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * 10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * Unless required by applicable law or agreed to in writing, software 11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * distributed under the License is distributed on an "AS IS" BASIS, 12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * See the License for the specific language governing permissions and 14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea * limitations under the License. 15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea */ 16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// This file contains portions derived from LLVM, with the original copyright 18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// header below: 19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea//===-- GDBJITRegistrar.h - Common Implementation shared by GDB-JIT users --===// 20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// 21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// The LLVM Compiler Infrastructure 22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// 23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// This file is distributed under the University of Illinois Open Source 24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// License. See LICENSE.TXT for details. 25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// 26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea//===----------------------------------------------------------------------===// 27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// 28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// This file contains declarations of the interface an ExecutionEngine would use 29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// to register an in-memory object file with GDB. 30094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// 31094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea//===----------------------------------------------------------------------===// 32094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 33c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#ifndef BCC_EXECUTION_ENGINE_GDB_JIT_REGISTRAR_H 34c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#define BCC_EXECUTION_ENGINE_GDB_JIT_REGISTRAR_H 35094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 36094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea#include <cstddef> 37094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 38094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea// Buffer for an in-memory object file in executable memory 39094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleatypedef char ObjectBuffer; 40094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 41094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleavoid registerObjectWithGDB(const ObjectBuffer* Object, std::size_t Size); 42094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleavoid deregisterObjectWithGDB(const ObjectBuffer* Object); 43094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea 44c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#endif // BCC_EXECUTION_ENGINE_GDB_JIT_REGISTRAR_H 45