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