It has C style interfaces, meaning structs with function pointers.
Which is basically how most device drivers in OSes that happen to be written in C, including UNIX flavours, work.