IA32-doc is a project which aims to put as many definitions from the Intel Manual into machine-processable format as possible
IA32-doc is a project which aims to put as many definitions from the Intel Manual into machine-processable format as possible
IA32-doc is a project which aims to put as many definitions from the Intel Manual into machine-processable format (in this case: yaml) as possible.
Because such thing, as far as I know, does not exist. You can try to cherry-pick definitions from Linux source code, [ReactOS][reactos-source], [VirtualBox source code][virtualbox-source] or EDK-II source code, but you can expect limited set of definitions which are often poorly documented as a bonus.
For this. For your hobby OS. For your hobby hypervisor. For your experiments with APIC, various MSRs, SGX, performance counters, you name it.
$ python3 main.py -c conf/default.yml -f yaml/Intel/index.ymlHopefully, both.
No, just Intel-specific stuff.
Mainly: Intel® 64 and IA-32 architectures software developer’s manual combined volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4 (May 2018).
I've also took inspiration of various names/descriptions from other projects (VirtualBox, TianoCore).
No. Although, it shouldn't be that hard to extend the Python code to generate source code in other programming languages.
Just PyYAML. And Python >= 3.7.
Nobody. Maybe miracle happens and someone (or group of people) decide to fork this repo and maintain it. Don't expect me to keep up with each release of Intel Manual, though. Although I may add whatever I'm interested into at any moment.
Look into yaml/Intel directory. Currently there are transcribed:
To change naming of integers, change int_type_* values in conf/default.yml.
To change anything related to the output file, you have to modify DocCProcessor class.
To create new "yaml document processor" (e.g. for Rust), derive DocProcessor class.
Look at yaml/template.yml to better understand the format. Also, by looking at other yaml files, you should get the idea.
All the code in this repository is open-source under the MIT license. see the LICENSE.txt file in this repository.
If you find this project interesting, you can buy me a coffee
BTC 3GwZMNGvLCZMi7mjL8K6iyj6qGbhkVMNMF
LTC MQn5YC7bZd4KSsaj8snSg4TetmdKDkeCYkNo open issues yet, or sync has not completed.