Diff for /src/sys/dev/serial/rp/rp.c between versions 1.10 and 1.11

version 1.10, 2004/05/13 23:49:20 version 1.11, 2004/05/19 22:52:49
Line 813  rp_attachcommon(CONTROLLER_T *ctlp, int Line 813  rp_attachcommon(CONTROLLER_T *ctlp, int
         int     retval;          int     retval;
         struct  rp_port *rp;          struct  rp_port *rp;
         struct  tty     *tty;          struct  tty     *tty;
         dev_t   *dev_nodes;  
   
         unit = device_get_unit(ctlp->dev);          unit = device_get_unit(ctlp->dev);
   
Line 847  rp_attachcommon(CONTROLLER_T *ctlp, int Line 846  rp_attachcommon(CONTROLLER_T *ctlp, int
         rp_addr(unit) = rp;          rp_addr(unit) = rp;
         splx(oldspl);          splx(oldspl);
   
        dev_nodes = ctlp->dev_nodes = malloc(sizeof(*(ctlp->dev_nodes)) * rp_num_ports[unit] * 6, M_DEVBUF, M_NOWAIT | M_ZERO);        cdevsw_add(&rp_cdevsw, 0xffff0000, (unit + 1) << 16);
        if(ctlp->dev_nodes == NULL) { 
                device_printf(ctlp->dev, "rp_attachcommon: Could not malloc device node structures.\n"); 
                retval = ENOMEM; 
                goto nogo; 
        } 
 
         for (i = 0 ; i < rp_num_ports[unit] ; i++) {          for (i = 0 ; i < rp_num_ports[unit] ; i++) {
                *(dev_nodes++) = make_dev(&rp_cdevsw, ((unit + 1) << 16) | i,                make_dev(&rp_cdevsw, ((unit + 1) << 16) | i,
                                          UID_ROOT, GID_WHEEL, 0666, "ttyR%c",                          UID_ROOT, GID_WHEEL, 0666, "ttyR%c",
                                          i <= 9 ? '0' + i : 'a' + i - 10);                          i <= 9 ? '0' + i : 'a' + i - 10);
                *(dev_nodes++) = make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0x20,                make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0x20,
                                          UID_ROOT, GID_WHEEL, 0666, "ttyiR%c",                          UID_ROOT, GID_WHEEL, 0666, "ttyiR%c",
                                          i <= 9 ? '0' + i : 'a' + i - 10);                          i <= 9 ? '0' + i : 'a' + i - 10);
                *(dev_nodes++) = make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0x40,                make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0x40,
                                          UID_ROOT, GID_WHEEL, 0666, "ttylR%c",                          UID_ROOT, GID_WHEEL, 0666, "ttylR%c",
                                          i <= 9 ? '0' + i : 'a' + i - 10);                          i <= 9 ? '0' + i : 'a' + i - 10);
                *(dev_nodes++) = make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0x80,                make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0x80,
                                          UID_ROOT, GID_WHEEL, 0666, "cuaR%c",                          UID_ROOT, GID_WHEEL, 0666, "cuaR%c",
                                          i <= 9 ? '0' + i : 'a' + i - 10);                          i <= 9 ? '0' + i : 'a' + i - 10);
                *(dev_nodes++) = make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0xa0,                make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0xa0,
                                          UID_ROOT, GID_WHEEL, 0666, "cuaiR%c",                          UID_ROOT, GID_WHEEL, 0666, "cuaiR%c",
                                          i <= 9 ? '0' + i : 'a' + i - 10);                          i <= 9 ? '0' + i : 'a' + i - 10);
                *(dev_nodes++) = make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0xc0,                make_dev(&rp_cdevsw, ((unit + 1) << 16) | i | 0xc0,
                                          UID_ROOT, GID_WHEEL, 0666, "cualR%c",                          UID_ROOT, GID_WHEEL, 0666, "cualR%c",
                                          i <= 9 ? '0' + i : 'a' + i - 10);                          i <= 9 ? '0' + i : 'a' + i - 10);
         }          }
   
         port = 0;          port = 0;
Line 950  rp_releaseresource(CONTROLLER_t *ctlp) Line 943  rp_releaseresource(CONTROLLER_t *ctlp)
                 free(ctlp->tty, M_DEVBUF);                  free(ctlp->tty, M_DEVBUF);
                 ctlp->tty = NULL;                  ctlp->tty = NULL;
         }          }
        if (ctlp->dev != NULL) {        if (ctlp->dev != NULL)
                for (i = 0 ; i < rp_num_ports[unit] * 6 ; i++) 
                        destroy_dev(ctlp->dev_nodes[i]); 
                free(ctlp->dev_nodes, M_DEVBUF); 
                 ctlp->dev = NULL;                  ctlp->dev = NULL;
        }        cdevsw_remove(&rp_cdevsw, 0xffff0000, (unit + 1) << 16);
 }  }
   
 int  int

Removed from v.1.10  
changed lines
  Added in v.1.11