mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-11-15 01:26:34 +00:00
uart.mitm: Log when the data for SendLogData is too large.
This commit is contained in:
parent
296fb31358
commit
4cb8034ac8
3 changed files with 10 additions and 5 deletions
|
@ -208,13 +208,13 @@ namespace ams::mitm::uart {
|
||||||
|
|
||||||
/* Send the specified data to the Logger thread. */
|
/* Send the specified data to the Logger thread. */
|
||||||
/* dir: false = Send (host->controller), true = Receive (controller->host). */
|
/* dir: false = Send (host->controller), true = Receive (controller->host). */
|
||||||
void UartLogger::SendLogData(FsFile *f, size_t *file_pos, s64 timestamp_base, s64 tick_base, bool dir, const void* buffer, size_t size) {
|
bool UartLogger::SendLogData(FsFile *f, size_t *file_pos, s64 timestamp_base, s64 tick_base, bool dir, const void* buffer, size_t size) {
|
||||||
/* Ignore log data which is too large. */
|
/* Ignore log data which is too large. */
|
||||||
if (size > this->QueueBufferSize) return;
|
if (size > this->QueueBufferSize) return false;
|
||||||
|
|
||||||
UartLogMessage *msg=nullptr;
|
UartLogMessage *msg=nullptr;
|
||||||
this->m_client_queue.Receive(reinterpret_cast<uintptr_t *>(&msg));
|
this->m_client_queue.Receive(reinterpret_cast<uintptr_t *>(&msg));
|
||||||
if (msg->data == nullptr) return;
|
if (msg->data == nullptr) return true;
|
||||||
|
|
||||||
/* Setup the msg and send it. */
|
/* Setup the msg and send it. */
|
||||||
msg->type = 1;
|
msg->type = 1;
|
||||||
|
@ -233,6 +233,7 @@ namespace ams::mitm::uart {
|
||||||
this->m_finish_event.Clear();
|
this->m_finish_event.Clear();
|
||||||
this->m_thread_queue.Send(reinterpret_cast<uintptr_t>(msg));
|
this->m_thread_queue.Send(reinterpret_cast<uintptr_t>(msg));
|
||||||
this->m_request_event.Signal();
|
this->m_request_event.Signal();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send the specified text log to the Logger thread. */
|
/* Send the specified text log to the Logger thread. */
|
||||||
|
|
|
@ -67,7 +67,7 @@ namespace ams::mitm::uart {
|
||||||
|
|
||||||
void InitializeDataLog(FsFile *f, size_t *datalog_pos);
|
void InitializeDataLog(FsFile *f, size_t *datalog_pos);
|
||||||
|
|
||||||
void SendLogData(FsFile *f, size_t *file_pos, s64 timestamp_base, s64 tick_base, bool dir, const void* buffer, size_t size);
|
bool SendLogData(FsFile *f, size_t *file_pos, s64 timestamp_base, s64 tick_base, bool dir, const void* buffer, size_t size);
|
||||||
void SendTextLogData(const char *path, size_t *file_pos, const char *str);
|
void SendTextLogData(const char *path, size_t *file_pos, const char *str);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,11 @@ namespace ams::mitm::uart {
|
||||||
/* Only write to the file if data-logging is enabled and initialized. */
|
/* Only write to the file if data-logging is enabled and initialized. */
|
||||||
if (this->m_data_logging_enabled && this->m_datalog_ready) {
|
if (this->m_data_logging_enabled && this->m_datalog_ready) {
|
||||||
std::shared_ptr<UartLogger> logger = mitm::uart::g_logger;
|
std::shared_ptr<UartLogger> logger = mitm::uart::g_logger;
|
||||||
logger->SendLogData(&this->m_datalog_file, &this->m_datalog_pos, this->m_timestamp_base, this->m_tick_base, dir, cache_buffer, pkt_len);
|
if (!logger->SendLogData(&this->m_datalog_file, &this->m_datalog_pos, this->m_timestamp_base, this->m_tick_base, dir, cache_buffer, pkt_len)) {
|
||||||
|
char str[256];
|
||||||
|
std::snprintf(str, sizeof(str), "WriteUartData(): SendLogData dropped packet with size = 0x%lx\n", pkt_len);
|
||||||
|
this->WriteCmdLog(str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
(*cache_pos)-= pkt_len;
|
(*cache_pos)-= pkt_len;
|
||||||
if (*cache_pos) {
|
if (*cache_pos) {
|
||||||
|
|
Loading…
Reference in a new issue