50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
/*
|
|
* \brief Genode backend for GDBServer
|
|
* \author Christian Prochaska
|
|
* \date 2011-05-06
|
|
*/
|
|
|
|
/*
|
|
* Copyright (C) 2011-2017 Genode Labs GmbH
|
|
*
|
|
* This file is part of the Genode OS framework, which is distributed
|
|
* under the terms of the GNU Affero General Public License version 3.
|
|
*/
|
|
|
|
/*
|
|
* Based on gdbserver/linux-low.h
|
|
*/
|
|
|
|
#ifndef GENODE_LOW_H
|
|
#define GENODE_LOW_H
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include "server.h"
|
|
|
|
/* exception type */
|
|
struct No_memory_at_address { };
|
|
|
|
/* interface for linux-low.c */
|
|
|
|
void genode_stop_all_threads();
|
|
void genode_continue_thread(unsigned long lwpid, int single_step);
|
|
|
|
int genode_kill(int pid);
|
|
int genode_detach(int pid);
|
|
void genode_fetch_registers(struct regcache *regcache, int regno);
|
|
void genode_store_registers(struct regcache *regcache, int regno);
|
|
int genode_read_memory(CORE_ADDR memaddr, unsigned char *myaddr, int len);
|
|
int genode_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len);
|
|
|
|
/* interface for genode-low.cc and low.cc */
|
|
|
|
int genode_fetch_register(int regno, unsigned long *reg_content);
|
|
void genode_store_register(int regno, unsigned long reg_content);
|
|
unsigned char genode_read_memory_byte(void *addr);
|
|
|
|
/* interface for cpu_thread_component.cc */
|
|
void genode_set_initial_breakpoint_at(unsigned long addr);
|
|
|
|
#endif /* GENODE_LOW_H */
|