You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
На данный момент QDT позволяет сгенерировать заготовки перефирийных устройств, при этом реализация поведенческого аспекта ложится на пользователя.
У меня возникла необходимость в автоматической генерации некоторых моделей периферийных устройств. При этом часть поведеньческой функциональности, в моем случае, может быть так же сгенерированна автоматически.
В настоящий момент я использую инструмент QDT для генерации заготовок периферийных устройств. Затем мне приходится парсить сгенерированные QDT .h и .c файлы и добавлять в них функциональность.
Было бы здорово, если бы QDT представлял возможность пользователю интегрироваться в процесс кодогенерации, для добавления в заготовки необходимой функциональности.
В частности, если в текущей версии QDT позволяет мне сгенерировать следующий .h файл:
То я бы хотел иметь возможность предоставить QDT набор функций (callback-ов), через которые бы был сгенерирован произвольный код на месте комментариев "INSERT POS".
По аналогии с .h файлом для .c файла хотелось бы иметь возможность генерировать произвольный код для добавления #include файлов, описания пользовательских функций, и предоставления осмысленной реализации функциям, генерируемым QDT.
В дальнейшем аналогичная функциональность понадобилась бы и для генерации платформ.
The text was updated successfully, but these errors were encountered:
Сразу нужно сказать, что текущая реализация модели не позволяет вставлять
совсем уж произвольный код.
Во-первых, код не может быть просто строкой (вернее, может, но только в определённых
случаях).
Он должен быть построен с помощью API из модуля source.
Примеры использования этого API можно найти в qemu/sysbusdevice.py, qemu/pcie.py и других файлах, отвечающих за генерацию (в том же модуле).
Во-вторых, мы пока не поддерживаем весь синтаксис Си.
Собственно, примеры в обозначенных файлах содержат почти все
поддерживаемые случаи использования.
Возможности допиливаются по мере надобности.
Вклиниться в процесс генерации можно (теоретически) с помощью
наследования и перегрузки методов генерации.
В данном случае от qemu.sysbusdevice.SysBusDeviceType.
Проанализировав код методов, отвечающих за генерацию, можно заметить, что
они сохраняют созданные сущности в self под определёнными именами,
откуда их можно достать и изменить.
Я попробую придумать какой-нибудь пример.
Также м.б. получится сделать некоторые вещи удобнее.
Это будет PR, следите за обновлениями.
На данный момент QDT позволяет сгенерировать заготовки перефирийных устройств, при этом реализация поведенческого аспекта ложится на пользователя.
У меня возникла необходимость в автоматической генерации некоторых моделей периферийных устройств. При этом часть поведеньческой функциональности, в моем случае, может быть так же сгенерированна автоматически.
В настоящий момент я использую инструмент QDT для генерации заготовок периферийных устройств. Затем мне приходится парсить сгенерированные QDT .h и .c файлы и добавлять в них функциональность.
Было бы здорово, если бы QDT представлял возможность пользователю интегрироваться в процесс кодогенерации, для добавления в заготовки необходимой функциональности.
В частности, если в текущей версии QDT позволяет мне сгенерировать следующий .h файл:
То я бы хотел иметь возможность предоставить QDT набор функций (callback-ов), через которые бы был сгенерирован произвольный код на месте комментариев "INSERT POS".
По аналогии с .h файлом для .c файла хотелось бы иметь возможность генерировать произвольный код для добавления #include файлов, описания пользовательских функций, и предоставления осмысленной реализации функциям, генерируемым QDT.
В дальнейшем аналогичная функциональность понадобилась бы и для генерации платформ.
The text was updated successfully, but these errors were encountered: