mirror of
https://github.com/n64dev/cen64.git
synced 2024-06-22 22:12:45 -04:00
42 lines
1,005 B
C
42 lines
1,005 B
C
//
|
|
// gdb.h: gdb remote debugger implementation
|
|
//
|
|
// CEN64: Cycle-Accurate Nintendo 64 Emulator.
|
|
// Copyright (C) 2015, Tyler J. Stachecki.
|
|
//
|
|
// This file is subject to the terms and conditions defined in
|
|
// 'LICENSE', which is part of this source code package.
|
|
//
|
|
|
|
#ifndef _gdb_h__
|
|
#define _gdb_h__
|
|
#include "common.h"
|
|
#include "vr4300/interface.h"
|
|
#include "device/device.h"
|
|
|
|
#define MAX_GDB_PACKET_SIZE 0x4000
|
|
|
|
enum gdb_flags {
|
|
GDB_FLAGS_INITIAL = 0x1,
|
|
GDB_FLAGS_CONNECTED = 0x2,
|
|
GDB_FLAGS_PAUSED = 0x4,
|
|
};
|
|
|
|
struct gdb {
|
|
int socket;
|
|
int client;
|
|
struct cen64_device* device;
|
|
int pending_data;
|
|
char packet_buffer[MAX_GDB_PACKET_SIZE*2];
|
|
char output_buffer[MAX_GDB_PACKET_SIZE];
|
|
int flags;
|
|
cen64_thread thread;
|
|
cen64_mutex client_mutex;
|
|
cen64_cv client_semaphore;
|
|
};
|
|
|
|
cen64_cold struct gdb* gdb_alloc();
|
|
cen64_cold bool gdb_init(struct gdb* gdb, struct cen64_device* device, const char* host);
|
|
cen64_cold void gdb_destroy(struct gdb* gdb);
|
|
|
|
#endif |