The way of translating C headers is wrong, IMO.
People convert C header into an unit, but the unit is not just the original headers. More often than not it contains a initialization/loading code also, the code that often doesn't work or is incompatible with your project. So you can't just use that unit, you need to modify it. But then the updated version is released, and you need to do it all again. and again.

Why not convert C headers to Pascal, then put it into a unit using {$include ...} ?

he Pascal equivilent to this is a unit
No, it isn't. The units have no equivalent in C/C++.
On the other hand, the C way of headers and core source files is perfectly applicable to Pascal. I use it to compose large units from many small fies using {$include ...}. The Free Pascal RTL is built the same way.