github.com/emc-advanced-dev/unik@v0.0.0-20190717152701-a58d3e8e33b7/containers/compilers/rump/base/patches/scsipi_component.c (about)

     1  /*	$NetBSD: scsipi_component.c,v 1.2 2016/01/26 23:12:16 pooka Exp $	*/
     2  
     3  #include <sys/param.h>
     4  #include <sys/conf.h>
     5  #include <sys/device.h>
     6  #include <sys/kmem.h>
     7  #include <sys/stat.h>
     8  #include <sys/disklabel.h>
     9  
    10  #include "ioconf.c"
    11  
    12  #include <rump-sys/kern.h>
    13  #include <rump-sys/vfs.h>
    14  
    15  RUMP_COMPONENT(RUMP_COMPONENT_DEV)
    16  {
    17  	extern struct bdevsw sd_bdevsw, cd_bdevsw;
    18  	extern struct cdevsw sd_cdevsw, cd_cdevsw;
    19      int i;
    20  	devmajor_t bmaj, cmaj;
    21      
    22      char bDevice[] = "/dev/sd0";
    23      char cDevice[] = "/dev/rsd0";
    24  
    25  	config_init_component(cfdriver_ioconf_scsipi,
    26  	    cfattach_ioconf_scsipi, cfdata_ioconf_scsipi);
    27  
    28  	bmaj = cmaj = -1;
    29  	FLAWLESSCALL(devsw_attach("sd", &sd_bdevsw, &bmaj, &sd_cdevsw, &cmaj));
    30  
    31      for (i=0; i < 8; i++) {
    32          bDevice[7] = '0' + i;
    33          cDevice[8] = '0' + i;
    34      
    35          FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, bDevice, 'a',
    36              bmaj, MAXPARTITIONS*i, 8));
    37          FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, cDevice, 'a',
    38              cmaj, MAXPARTITIONS*i, 8));
    39      }
    40      
    41  	bmaj = cmaj = -1;
    42  	FLAWLESSCALL(devsw_attach("cd", &cd_bdevsw, &bmaj, &cd_cdevsw, &cmaj));
    43  
    44  	FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, "/dev/cd0", 'a',
    45  	    bmaj, 0, 8));
    46  	FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/rcd0", 'a',
    47  	    cmaj, 0, 8));
    48  }