Internet Browser: Difference between revisions
Line 278: | Line 278: | ||
When sending messages, there has to be an available message slot available (<code>max_messages!=message_count</code>), and there has to be enough space available (<code>msghdr_contentsize+0x10 + cur_size <= max_size</code>). After pushing the storage, message_count is incremented and cur_size is increased by <code>msghdr_contentsize+0x10</code>. | When sending messages, there has to be an available message slot available (<code>max_messages!=message_count</code>), and there has to be enough space available (<code>msghdr_contentsize+0x10 + cur_size <= max_size</code>). After pushing the storage, message_count is incremented and cur_size is increased by <code>msghdr_contentsize+0x10</code>. | ||
When receiving messages, it will repeatedly pop Interactive output storage until no more are available. | When receiving messages, it will repeatedly pop Interactive output storage until no more are available. Non-Ack messages are Acked. | ||
* Ack: Verifies that message_count is not already 0, then decrements it. Then cur_size is decreased by the u32 loaded from msgcontent+0. | * Ack: Verifies that message_count is not already 0, then decrements it. Then cur_size is decreased by the u32 loaded from msgcontent+0. | ||
* 0x0: Does some validation | * 0x0: Does some validation. Reads the message content into the user buffer, when contentsize is non-zero. The original contentsize is written to an user output param. The last byte in the user buffer (contentsize clamped to the user max-buf-size) is set to 0 for NUL-termination. | ||
Next info was tested in 9.0.0 | Next info was tested in 9.0.0 | ||
Line 317: | Line 317: | ||
| 0x0 | | 0x0 | ||
| 0x4 | | 0x4 | ||
| Message Kind | | Message Kind ([[#WebSessionSendMessageKind]] / [[#WebSessionReceiveMessageKind]]) | ||
|- | |- | ||
| 0x4 | | 0x4 |