1
0
Fork 0
forked from suyu/suyu

gdbstub: const correctness changes

Also uses size_t as the length indicator type, as is common with buffers.
This commit is contained in:
Lioncash 2016-12-16 04:05:55 -05:00
parent cda7210fad
commit 38a964735f

View file

@ -185,11 +185,10 @@ static u8 NibbleToHex(u8 n) {
/** /**
* Converts input hex string characters into an array of equivalent of u8 bytes. * Converts input hex string characters into an array of equivalent of u8 bytes.
* *
* @param dest Pointer to buffer to store u8 bytes.
* @param src Pointer to array of output hex string characters. * @param src Pointer to array of output hex string characters.
* @param len Length of src array. * @param len Length of src array.
*/ */
static u32 HexToInt(u8* src, u32 len) { static u32 HexToInt(const u8* src, size_t len) {
u32 output = 0; u32 output = 0;
while (len-- > 0) { while (len-- > 0) {
output = (output << 4) | HexCharToValue(src[0]); output = (output << 4) | HexCharToValue(src[0]);
@ -205,7 +204,7 @@ static u32 HexToInt(u8* src, u32 len) {
* @param src Pointer to array of u8 bytes. * @param src Pointer to array of u8 bytes.
* @param len Length of src array. * @param len Length of src array.
*/ */
static void MemToGdbHex(u8* dest, u8* src, u32 len) { static void MemToGdbHex(u8* dest, const u8* src, size_t len) {
while (len-- > 0) { while (len-- > 0) {
u8 tmp = *src++; u8 tmp = *src++;
*dest++ = NibbleToHex(tmp >> 4); *dest++ = NibbleToHex(tmp >> 4);
@ -220,7 +219,7 @@ static void MemToGdbHex(u8* dest, u8* src, u32 len) {
* @param src Pointer to array of output hex string characters. * @param src Pointer to array of output hex string characters.
* @param len Length of src array. * @param len Length of src array.
*/ */
static void GdbHexToMem(u8* dest, u8* src, u32 len) { static void GdbHexToMem(u8* dest, const u8* src, size_t len) {
while (len-- > 0) { while (len-- > 0) {
*dest++ = (HexCharToValue(src[0]) << 4) | HexCharToValue(src[1]); *dest++ = (HexCharToValue(src[0]) << 4) | HexCharToValue(src[1]);
src += 2; src += 2;
@ -244,7 +243,7 @@ static void IntToGdbHex(u8* dest, u32 v) {
* *
* @param src Pointer to hex string. * @param src Pointer to hex string.
*/ */
static u32 GdbHexToInt(u8* src) { static u32 GdbHexToInt(const u8* src) {
u32 output = 0; u32 output = 0;
for (int i = 0; i < 8; i += 2) { for (int i = 0; i < 8; i += 2) {
@ -268,7 +267,7 @@ static u8 ReadByte() {
} }
/// Calculate the checksum of the current command buffer. /// Calculate the checksum of the current command buffer.
static u8 CalculateChecksum(u8* buffer, u32 length) { static u8 CalculateChecksum(const u8* buffer, size_t length) {
return static_cast<u8>(std::accumulate(buffer, buffer + length, 0, std::plus<u8>())); return static_cast<u8>(std::accumulate(buffer, buffer + length, 0, std::plus<u8>()));
} }
@ -586,7 +585,7 @@ static void ReadRegisters() {
/// Modify data of register specified by gdb client. /// Modify data of register specified by gdb client.
static void WriteRegister() { static void WriteRegister() {
u8* buffer_ptr = command_buffer + 3; const u8* buffer_ptr = command_buffer + 3;
u32 id = HexCharToValue(command_buffer[1]); u32 id = HexCharToValue(command_buffer[1]);
if (command_buffer[2] != '=') { if (command_buffer[2] != '=') {
@ -612,7 +611,7 @@ static void WriteRegister() {
/// Modify all registers with data received from the client. /// Modify all registers with data received from the client.
static void WriteRegisters() { static void WriteRegisters() {
u8* buffer_ptr = command_buffer + 1; const u8* buffer_ptr = command_buffer + 1;
if (command_buffer[0] != 'G') if (command_buffer[0] != 'G')
return SendReply("E01"); return SendReply("E01");
@ -657,7 +656,7 @@ static void ReadMemory() {
SendReply("E01"); SendReply("E01");
} }
u8* data = Memory::GetPointer(addr); const u8* data = Memory::GetPointer(addr);
if (!data) { if (!data) {
return SendReply("E00"); return SendReply("E00");
} }