Skip to content

Commit 0df2d08

Browse files
committed
Add debugger function to set transmission sizes
JerryScript-DCO-1.0-Signed-off-by: Jimmy Huang [email protected]
1 parent 567b693 commit 0df2d08

File tree

6 files changed

+43
-18
lines changed

6 files changed

+43
-18
lines changed

jerry-core/api/jerry-debugger.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,29 @@ jerry_debugger_init (jerry_debugger_transport_t *transport_p) /**< transport */
108108
#endif /* JERRY_DEBUGGER */
109109
} /* jerry_debugger_init */
110110

111+
/**
112+
* Debugger transport transmission sizes, each transport will need to set these.
113+
*/
114+
void
115+
jerry_debugger_set_transmit_sizes (size_t send_header_size, /**< transport send header size */
116+
size_t max_send_size, /**< transport max send size */
117+
size_t receive_header_size, /**< transport receive header size */
118+
size_t max_receive_size) /**< transport max receive size */
119+
{
120+
#ifdef JERRY_DEBUGGER
121+
JERRY_CONTEXT (debugger_send_header_size) = (uint8_t) send_header_size;
122+
JERRY_CONTEXT (debugger_max_send_size) = (uint8_t) max_send_size;
123+
JERRY_CONTEXT (debugger_receive_header_size) = (uint8_t) receive_header_size;
124+
JERRY_CONTEXT (debugger_max_receive_size) = (uint8_t) max_receive_size;
125+
#else /* !JERRY_DEBUGGER */
126+
JERRY_UNUSED (send_header_size);
127+
JERRY_UNUSED (max_send_size);
128+
JERRY_UNUSED (receive_header_size);
129+
JERRY_UNUSED (max_receive_size);
130+
#endif /* JERRY_DEBUGGER */
131+
} /* jerry_debugger_set_transmit_sizes */
132+
133+
111134
/**
112135
* Sets whether the engine should wait and run a source.
113136
*

jerry-core/debugger/debugger.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,24 +1077,22 @@ jerry_debugger_send_exception_string (void)
10771077
bool
10781078
jerry_debugger_accept_connection (void)
10791079
{
1080-
uint8_t *payload_p = JERRY_CONTEXT (debugger_send_buffer) + JERRY_CONTEXT (debugger_transport_p)->send_header_size;
1080+
uint8_t *payload_p = JERRY_CONTEXT (debugger_send_buffer) + JERRY_CONTEXT (debugger_send_header_size);
10811081
JERRY_CONTEXT (debugger_send_buffer_payload_p) = payload_p;
10821082

10831083
uint8_t max_send_size = (uint8_t) (JERRY_DEBUGGER_MAX_BUFFER_SIZE -
1084-
JERRY_CONTEXT (debugger_transport_p)->send_header_size);
1085-
if (max_send_size > JERRY_CONTEXT (debugger_transport_p)->max_message_size)
1084+
JERRY_CONTEXT (debugger_send_header_size));
1085+
if (max_send_size <= JERRY_CONTEXT (debugger_max_send_size))
10861086
{
1087-
max_send_size = JERRY_CONTEXT (debugger_transport_p)->max_message_size;
1087+
JERRY_CONTEXT (debugger_max_send_size) = max_send_size;
10881088
}
1089-
JERRY_CONTEXT (debugger_max_send_size) = max_send_size;
10901089

10911090
uint8_t max_receive_size = (uint8_t) (JERRY_DEBUGGER_MAX_BUFFER_SIZE -
1092-
JERRY_CONTEXT (debugger_transport_p)->receive_header_size);
1093-
if (max_receive_size > JERRY_CONTEXT (debugger_transport_p)->max_message_size)
1091+
JERRY_CONTEXT (debugger_receive_header_size));
1092+
if (max_receive_size <= JERRY_CONTEXT (debugger_max_send_size))
10941093
{
1095-
max_receive_size = JERRY_CONTEXT (debugger_transport_p)->max_message_size;
1094+
JERRY_CONTEXT (debugger_max_receive_size) = max_receive_size;
10961095
}
1097-
JERRY_CONTEXT (debugger_max_receive_size) = max_receive_size;
10981096

10991097
if (!JERRY_CONTEXT (debugger_transport_p)->accept_connection (JERRY_CONTEXT (debugger_transport_p)))
11001098
{
@@ -1186,7 +1184,7 @@ jerry_debugger_receive (jerry_debugger_uint8_data_t **message_data_p) /**< [out]
11861184
return true;
11871185
}
11881186

1189-
if (offset < JERRY_CONTEXT (debugger_transport_p)->receive_header_size)
1187+
if (offset < JERRY_CONTEXT (debugger_receive_header_size))
11901188
{
11911189
if (expected_message_type != 0)
11921190
{
@@ -1197,7 +1195,7 @@ jerry_debugger_receive (jerry_debugger_uint8_data_t **message_data_p) /**< [out]
11971195
}
11981196

11991197
uint32_t message_total_size = (uint32_t) (message_size +
1200-
JERRY_CONTEXT (debugger_transport_p)->receive_header_size);
1198+
JERRY_CONTEXT (debugger_receive_header_size));
12011199

12021200
if (offset < message_total_size)
12031201
{
@@ -1212,7 +1210,7 @@ jerry_debugger_receive (jerry_debugger_uint8_data_t **message_data_p) /**< [out]
12121210
/* The jerry_debugger_process_message function is inlined
12131211
* so passing these arguments is essentially free. */
12141212
if (!jerry_debugger_process_message (JERRY_CONTEXT (debugger_receive_buffer) +
1215-
JERRY_CONTEXT (debugger_transport_p)->receive_header_size,
1213+
JERRY_CONTEXT (debugger_receive_header_size),
12161214
(uint32_t) message_size,
12171215
&resume_exec,
12181216
&expected_message_type,

jerry-core/include/jerryscript-debugger.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ typedef jerry_value_t (*jerry_debugger_wait_for_source_callback_t) (const jerry_
5656
typedef struct jerry_debugger_transport_t jerry_debugger_transport_t;
5757

5858
void jerry_debugger_init (jerry_debugger_transport_t *transport_p);
59+
void jerry_debugger_set_transmit_sizes (size_t send_header_size,
60+
size_t max_send_size,
61+
size_t receive_header_size,
62+
size_t max_receive_size);
5963
bool jerry_debugger_is_connected (void);
6064
void jerry_debugger_stop (void);
6165
void jerry_debugger_continue (void);

jerry-core/include/jerryscript-port.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,6 @@ struct jerry_debugger_uint8_data_t;
163163
*/
164164
struct jerry_debugger_transport_t
165165
{
166-
uint8_t send_header_size;
167-
uint8_t receive_header_size;
168-
uint8_t max_message_size;
169166
bool (*accept_connection) (struct jerry_debugger_transport_t *transport_p);
170167
void (*close_connection) (struct jerry_debugger_transport_t *transport_p);
171168
bool (*send) (struct jerry_debugger_transport_t *transport_p,

jerry-core/jcontext/jcontext.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ typedef struct
118118
uint32_t debugger_flags; /**< debugger flags */
119119
uint16_t debugger_receive_buffer_offset; /**< receive buffer offset */
120120
uint8_t debugger_message_delay; /**< call receive message when reaches zero */
121+
uint8_t debugger_send_header_size; /**< header size reserved when sending */
122+
uint8_t debugger_receive_header_size; /**< header size reserved when receiving */
121123
uint8_t debugger_max_send_size; /**< maximum amount of data that can be written */
122124
uint8_t debugger_max_receive_size; /**< maximum amount of data that can be received */
123125
jerry_debugger_transport_t *debugger_transport_p; /**< holds the pointer to the debugger transport */

jerry-port/default/default-debugger-transport.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -576,9 +576,6 @@ jerry_debugger_receive_ws (struct jerry_debugger_transport_t *transport_p, /**<
576576

577577
static struct jerry_debugger_transport_t socket_transport =
578578
{
579-
.send_header_size = JERRY_DEBUGGER_WEBSOCKET_HEADER_SIZE,
580-
.receive_header_size = JERRY_DEBUGGER_WEBSOCKET_HEADER_SIZE + JERRY_DEBUGGER_WEBSOCKET_MASK_SIZE,
581-
.max_message_size = JERRY_DEBUGGER_WEBSOCKET_ONE_BYTE_LEN_MAX,
582579
.accept_connection = jerry_debugger_accept_connection_ws,
583580
.close_connection = jerry_debugger_close_connection_ws,
584581
.send = jerry_debugger_send_ws,
@@ -597,6 +594,10 @@ jerry_port_default_init_socket_transport (uint16_t tcp_port) /**< server port nu
597594
{
598595
#ifdef JERRY_DEBUGGER
599596
debugger_port = tcp_port;
597+
jerry_debugger_set_transmit_sizes (JERRY_DEBUGGER_WEBSOCKET_HEADER_SIZE,
598+
JERRY_DEBUGGER_WEBSOCKET_ONE_BYTE_LEN_MAX,
599+
JERRY_DEBUGGER_WEBSOCKET_HEADER_SIZE + JERRY_DEBUGGER_WEBSOCKET_MASK_SIZE,
600+
JERRY_DEBUGGER_WEBSOCKET_ONE_BYTE_LEN_MAX);
600601
return &socket_transport;
601602
#else /* !JERRY_DEBUGGER */
602603
JERRY_UNUSED (tcp_port);

0 commit comments

Comments
 (0)