summaryrefslogtreecommitdiff
path: root/src/debug/jdwp/sets/list.h
blob: d89a016931dc5cf4e0ac34d66c164d98f2828bd4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

/* 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 Foobar.  If not, see <http://www.gnu.org/licenses/>.
 */


#ifndef _DEBUG_JDWP_SETS_LIST_H
#define _DEBUG_JDWP_SETS_LIST_H


#include <stdbool.h>


#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 */