от
Я использую драйвер Кьюз для одного из моих проектов, где я создал свой собственный устройств. После прохождения указателем на struct из пространства процесса, я успешно смог восстановить его в КУС пространства с помощью:
in_iov[0].iov_base = arg;
in_iov[0].iov_len = sizeof(struct my_struct);
if (!in_bufsz) {
        fuse_reply_ioctl_retry(req, in_iov, 1, NULL, 0);
    return;
}
my_struct *ptr = in_buf;

in_buf  = sizeof(struct my_struct);
in_bufsz 

Вопрос в следующем месте, указатель на struct достал указывает на данные, указатель размер которой может быть между 0 и 2^28

in_iov[1].iov_base = ptr

который должен работать, как ожидалось с возвращением полезный указатель в in_buf.
Однако, по наблюдениям, похоже, если PTR->data_buf_size > 127,000, аварии водителя.
Я не смог найти ссылку, которая могла бы объяснить такое ограничение на размер передачи данных,
Кроме того, через несколько fuse_reply_ioctl_retry с меньшим баф размеров ниже 127000 за несколько итераций также не работает

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
...