/* Chrysalide - Outil d'analyse de fichiers binaires
* list.h - prototypes pour l'ensemble des jeux de commandes de JDWP
*
* Copyright (C) 2010-2017 Cyrille Bagard
*
* This file is part of Chrysalide.
*
* Chrysalide is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* Chrysalide is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Chrysalide. If not, see .
*/
#ifndef _DEBUG_JDWP_SETS_LIST_H
#define _DEBUG_JDWP_SETS_LIST_H
#include
#include "../jdwp_def.h"
#include "../../../arch/archbase.h"
/* Ensemble des contenus pris en compte */
typedef union _jdwp_payload
{
jdwp_cmd_vm_version_reply vs_reply; /* Infos. sur la version */
jdwp_cmd_vm_allthreads_reply th_reply; /* Liste des threads */
jdwp_cmd_vm_id_sizes_reply sz_reply; /* Tailles dynamiques */
jdwp_cmd_thread_name_request th_ident; /* Identification d'un thread */
jdwp_cmd_thread_name_reply th_name; /* Désignation d'un thread */
jdwp_cmd_thread_frames_request __nu0; /* Inutilisé */
jdwp_cmd_thread_frames_reply th_frames; /* Pile des frames courantes */
bin_t padding[500];
} jdwp_payload;
/* Reconstitue un contenu binaire à partir d'une charge utile. */
bool set_jdwp_payload(const jdwp_payload *, uint8_t, uint8_t, const jdwp_cmd_vm_id_sizes_reply *, bin_t *, off_t *);
/* Reconstitue une charge utile à partir d'un contenu binaire. */
bool get_jdwp_payload(const bin_t *, off_t, uint8_t, uint8_t, const jdwp_cmd_vm_id_sizes_reply *, jdwp_payload *);
/* Libère le contenu d'une charge utile. */
void free_jdwp_payload(jdwp_payload *, bool, uint8_t, uint8_t);
#endif /* _DEBUG_JDWP_SETS_LIST_H */