2017-06-05 02:02:04 +02:00
|
|
|
/*
|
2019-05-03 21:06:10 +02:00
|
|
|
* This file is part of Luma3DS.
|
2019-02-24 18:04:32 -07:00
|
|
|
* Copyright (C) 2016-2019 Aurora Wright, TuxSH
|
2017-06-05 02:02:04 +02:00
|
|
|
*
|
2019-05-03 21:06:10 +02:00
|
|
|
* SPDX-License-Identifier: (MIT OR GPL-2.0-or-later)
|
2017-06-05 02:02:04 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "gdb.h"
|
|
|
|
|
|
|
|
|
|
#ifndef GDB_PORT_BASE
|
|
|
|
|
#define GDB_PORT_BASE 4000
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
typedef struct GDBServer
|
|
|
|
|
{
|
|
|
|
|
sock_server super;
|
|
|
|
|
s32 referenceCount;
|
|
|
|
|
Handle statusUpdated;
|
2019-04-17 23:12:29 +02:00
|
|
|
Handle statusUpdateReceived;
|
2017-06-05 02:02:04 +02:00
|
|
|
GDBContext ctxs[MAX_DEBUG];
|
|
|
|
|
} GDBServer;
|
|
|
|
|
|
|
|
|
|
Result GDB_InitializeServer(GDBServer *server);
|
|
|
|
|
void GDB_FinalizeServer(GDBServer *server);
|
|
|
|
|
|
|
|
|
|
void GDB_IncrementServerReferenceCount(GDBServer *server);
|
|
|
|
|
void GDB_DecrementServerReferenceCount(GDBServer *server);
|
|
|
|
|
|
|
|
|
|
void GDB_RunServer(GDBServer *server);
|
2019-03-31 01:12:22 +01:00
|
|
|
|
|
|
|
|
void GDB_LockAllContexts(GDBServer *server);
|
|
|
|
|
void GDB_UnlockAllContexts(GDBServer *server);
|
|
|
|
|
|
2019-03-31 00:24:45 +01:00
|
|
|
GDBContext *GDB_SelectAvailableContext(GDBServer *server, u16 minPort, u16 maxPort);
|
2019-04-10 23:17:49 +02:00
|
|
|
GDBContext *GDB_FindAllocatedContextByPid(GDBServer *server, u32 pid);
|
2017-06-05 02:02:04 +02:00
|
|
|
|
|
|
|
|
int GDB_AcceptClient(GDBContext *ctx);
|
|
|
|
|
int GDB_CloseClient(GDBContext *ctx);
|
|
|
|
|
GDBContext *GDB_GetClient(GDBServer *server, u16 port);
|
|
|
|
|
void GDB_ReleaseClient(GDBServer *server, GDBContext *ctx);
|
|
|
|
|
int GDB_DoPacket(GDBContext *ctx);
|