Update Config.md
18
Config.md
18
Config.md
@@ -57,7 +57,23 @@
|
||||
|
||||
|
||||
## Конфигурация перехватов доступа к памяти:
|
||||
WIP
|
||||
Перехваты разделяются по двум критериям - по способу обработки и по типу перехваченной операции.
|
||||
По способу обработки - можно указать подмену адреса на адрес перехваченного устройства, прямое дублирование операций и запуск обработчика перехватывающего устройства.
|
||||
|
||||
### Подмена адреса ячейки (shadow replace)
|
||||
Подмена адреса ячейки выглядит таким образом:
|
||||
[Диаграмма](img/intercept_replace_addr.png)
|
||||
При этом, можно ограничить замену на исключительно чтение/запись, либо установить и на чтение и на запись.
|
||||
|
||||
### Дублирование операций (shadow copy)
|
||||
Дублировать можно только операции записи, поскольку нет никакой возможности прозрачно внедрить чтение из двух источников так, чтобы оно выглядело как чтение из однонго источника.
|
||||
[Диаграмма](img/intercept_shadowcopy_addr.png)
|
||||
|
||||
### Запустить обработчик (intercept callback)
|
||||
При перехвате записи, обработчик ничего не возвращает, при этом может выполнить запись по любому адресу, который он выберет.
|
||||
При перехвате чтения, обработчик должен вернуть значение, полученное при данном чтении. При этом он всё также может иметь полный доступ к устройству (и, например, снять флаг непрочитанного буфера).
|
||||
[Пример обработчика](img/intercept_callback.png)
|
||||
|
||||
`intercept_conf_t`:
|
||||
|
||||
|
||||
|
||||
BIN
img/intercept_callback.png
Normal file
BIN
img/intercept_callback.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 52 KiB |
BIN
img/intercept_replace_addr.png
Normal file
BIN
img/intercept_replace_addr.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
BIN
img/intercept_shadowcopy_addr.png
Normal file
BIN
img/intercept_shadowcopy_addr.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
Reference in New Issue
Block a user