X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=sunos4%2Fppp_vdcmd.c;h=68095c92ec7cf9de6a4a8729954dc9ee58c6cb95;hp=1e3853a564d6b8c9b35752e8b8d1d86470b9b238;hb=7f8a61bc3f6f1135ebdef7e6288097ad157e0325;hpb=a7a4b1892d5e5eb860d5656f2138004227b41d52 diff --git a/sunos4/ppp_vdcmd.c b/sunos4/ppp_vdcmd.c index 1e3853a..68095c9 100644 --- a/sunos4/ppp_vdcmd.c +++ b/sunos4/ppp_vdcmd.c @@ -28,6 +28,7 @@ ppp_vdcmd(fun, vdp, vdi, vds) addr_t vdi; struct vdstat *vds; { + static int majnum = -1; int n, maj; switch (fun) { @@ -46,6 +47,7 @@ ppp_vdcmd(fun, vdp, vdi, vds) cdevsw[maj] = ppp_cdevsw; vd.Drv_cdevsw = &ppp_cdevsw; vdp->vdd_vdtab = (struct vdlinkage *) &vd; + majnum = maj; break; case VDUNLOAD: @@ -56,6 +58,20 @@ ppp_vdcmd(fun, vdp, vdi, vds) break; case VDSTAT: + /* + * We have to fool the modstat command into thinking + * that this module is actually a driver! This is + * so that installation commands that use the -exec + * option of modload to run a shell script find out + * the block and/or char major numbers of the driver + * loaded (so that the shell script can go off to + * /dev and *MAKE* the bloody device nodes- remember + * they might change from one load to another if + * you don't hardwire the number!). + */ + vds->vds_magic = VDMAGIC_DRV; + vds->vds_modinfo[0] = (char) 0; + vds->vds_modinfo[1] = (char) majnum; break; default: