Christian, Marc.. thanks for the info.
I had worked through the examples in the manual, but something wasn't working for me. Anyway, following Marc's instructions, I was able to get my api to link correctly, so I can start it from gsi as I had originally wanted.
It works fine now. Originally, I had been having trouble resolving symbols in the OSX CoreFoundation and IOKit frameworks. I had somehow thought I needed to compile and link my c module separately (using gcc & ld). Now, passing the whole thing to gsc does the trick.
This is the gsc line I ended up with:
gsc -cc-options "ufifo.c" -ld-options "/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation /System/Library/Frameworks/IOKit.framework/IOKit" g-uf-api.scm
My USB interface code is in ufifo.c and its scheme api is in g-uf-api.scm. When I compile this, I get g-uf-api.o1 which I can load from the gsi repl.
Thanks again,
Neil