I'm new to Silabs products and USB development in general. I'm using the EFM8UB10F8G and the dev board/starter kit for it. I'm looking through the USB example code (specifically the HID keyboard example). Where can I find the documentation for the API(s) it's using, especially the parts in callback.c such as USBD_SofCb and the SI_SEGMENT_VARIABLE stuff?
You can find our library documentation for EFM8 devices here: http://devtools.silabs.com/studio/doc/EFM8/software/
Specifically, you'll want to look at the USB library page: http://devtools.silabs.com/studio/doc/EFM8/software/Lib/group___efm8__usb.html
The USB library relies on a device-specific USB runtime library, but you shouldn't need to use that. However, the docs for the UB1's version are here: http://devtools.silabs.com/studio/doc/EFM8/software/efm8ub1_g/group__usb__0__group.html
As for your other question, the definitions for the SI_xxxxx macros are found in si_toolchain.h. If you highlight one of those macros in Studio and hit F3 (go to declaration), it should pop you into that file. There is documentation in there that describes all the macros.
Thanks, that's exactly what I was looking for.