Well, since it's a Solaris driver, first you need to find up some docs on how Solaris drivers communicate with the kernel (or kernel with them). A quick search turned up this:
_init() initializes a loadable module. It is called before any other routine in a loadable module. _init() returns the value returned by
mod_install(9F) . The module may ...
I edited the whole example a little so that it would better match the question.
My SPARC assembly fu is weak, but what I did was write a little "Hello world" with a twist (or one could say with jumps/gotos) in C and use gcc -S to translate it to assembly. I have a SPARC on which I am running it, details:
$ isainfo -v
64-bit sparcv9 applications
81 c0 40 00 can be broken down as follows
10 00000 111000 00001 0 0000000000000
To change the target from %g1 to %g2, just change the rs1 field from 00001 to 00010.
The 'L' is simply an artifact of at&t syntax vs intel syntax....
CrackZ still has one of the best references on FLEXlm.
That stuff went thru a couple of iterations. The documents there are mostly Windows stuff but they are helpful to understand the whole system.
Good luck on that project, should be fun to crack for Sparc :-)
Within the IDA SDK there is a lot of flexibility (albeit lacking in documentation).
You are probably going to have to write your own plug-in, or you might have to make your own loader, and, or modify an existing processor module.
Probably need to do this in C/C++ but maybe you could do it in Python.
See the folders "loader" and "module" from the SDK folder ...