| 72 | | #endif /* DEBUG defined */ |
|---|
| | 71 | #if !defined(DEBUG) && defined(IN_MODULE) |
|---|
| | 72 | /** Write a string to the backdoor logger. */ |
|---|
| | 73 | RTDECL(void) RTLogWriteUser(const char *pch, size_t cb) |
|---|
| | 74 | { |
|---|
| | 75 | const uint8_t *pu8; |
|---|
| | 76 | for (pu8 = (const uint8_t *)pch; cb-- > 0; pu8++) |
|---|
| | 77 | ASMOutU8(RTLOG_DEBUG_PORT, *pu8); |
|---|
| | 78 | /** @todo a rep outs could be more efficient, I don't know... |
|---|
| | 79 | * @code |
|---|
| | 80 | * __asm { |
|---|
| | 81 | * mov ecx, [cb] |
|---|
| | 82 | * mov esi, [pch] |
|---|
| | 83 | * mov dx, RTLOG_DEFAULT_PORT |
|---|
| | 84 | * rep outsb |
|---|
| | 85 | * } |
|---|
| | 86 | * @endcode |
|---|
| | 87 | */ |
|---|
| | 88 | } |
|---|
| | 89 | EXPORT_SYMBOL(RTLogWriteUser); |
|---|
| | 90 | #endif /* DEBUG not defined and IN_MODULE defined */ |
|---|