The following example shows the structures you need if you are working with a module instead of a driver. Notice that a modlstrmod(9S) is used in modlinkage(9S), and fmodsw(9S) points to streamtab(9S) instead of going through dev_ops(9S).
extern struct streamtab pteminfo; static struct fmodsw fsw = { "ptem", &pteminfo, D_NEW | D_MP }; /* * Module linkage information for the kernel. */ extern struct mod_ops mod_strmodops; static struct modlstrmod modlstrmod = { &mod_strmodops, "pty hardware emulator", &fsw }; static struct modlinkage modlinkage = { MODREV_1, (void *)&modlstrmod, NULL };