Diff for /src/sys/dev/video/fb/fb.c between versions 1.8 and 1.9

version 1.8, 2004/05/13 23:49:22 version 1.9, 2004/05/19 22:52:54
Line 65  static video_switch_t *vidsw_ini; Line 65  static video_switch_t *vidsw_ini;
        video_switch_t   **vidsw = &vidsw_ini;         video_switch_t   **vidsw = &vidsw_ini;
   
 #ifdef FB_INSTALL_CDEV  #ifdef FB_INSTALL_CDEV
static struct lwkt_port        *vidcdevsw_ini;static dev_t        vidcdevsw_ini;
static struct lwkt_port        **vidcdevsw = &vidcdevsw_ini;static dev_t        *vidcdevsw = &vidcdevsw_ini;
 #endif  #endif
   
 #define ARRAY_DELTA     4  #define ARRAY_DELTA     4
Line 77  vid_realloc_array(void) Line 77  vid_realloc_array(void)
         video_adapter_t **new_adp;          video_adapter_t **new_adp;
         video_switch_t **new_vidsw;          video_switch_t **new_vidsw;
 #ifdef FB_INSTALL_CDEV  #ifdef FB_INSTALL_CDEV
        struct lwkt_port **new_cdevsw;        dev_t *new_cdevsw;
 #endif  #endif
         int newsize;          int newsize;
         int s;          int s;
Line 388  vfbattach(void *arg) Line 388  vfbattach(void *arg)
         static int fb_devsw_installed = FALSE;          static int fb_devsw_installed = FALSE;
   
         if (!fb_devsw_installed) {          if (!fb_devsw_installed) {
                cdevsw_add(&fb_cdevsw);                cdevsw_add(&fb_cdevsw, 0, 0);
                 fb_devsw_installed = TRUE;                  fb_devsw_installed = TRUE;
         }          }
 }  }
Line 409  fb_attach(dev_t dev, video_adapter_t *ad Line 409  fb_attach(dev_t dev, video_adapter_t *ad
                 return EINVAL;                  return EINVAL;
   
         s = spltty();          s = spltty();
           reference_dev(dev);
         adp->va_minor = minor(dev);          adp->va_minor = minor(dev);
        vidcdevsw[adp->va_index] = dev_dport(dev);        vidcdevsw[adp->va_index] = dev;
         splx(s);          splx(s);
   
         printf("fb%d at %s%d\n", adp->va_index, adp->va_name, adp->va_unit);          printf("fb%d at %s%d\n", adp->va_index, adp->va_name, adp->va_unit);
         return 0;          return 0;
 }  }
   
 #if 0   /* never seems to be called */  
 /*  /*
  *  Note: dev represents the actual video device, not the frame buffer   *  Note: dev represents the actual video device, not the frame buffer
  */   */
Line 430  fb_detach(dev_t dev, video_adapter_t *ad Line 430  fb_detach(dev_t dev, video_adapter_t *ad
                 return EINVAL;                  return EINVAL;
         if (adapter[adp->va_index] != adp)          if (adapter[adp->va_index] != adp)
                 return EINVAL;                  return EINVAL;
        if (vidcdevsw[adp->va_index] != port)        if (vidcdevsw[adp->va_index] != dev)
                 return EINVAL;                  return EINVAL;
   
         s = spltty();          s = spltty();
         vidcdevsw[adp->va_index] = NULL;          vidcdevsw[adp->va_index] = NULL;
         splx(s);          splx(s);
           release_dev(dev);
         return 0;          return 0;
 }  }
 #endif  
   
 static int  static int
 fbopen(dev_t dev, int flag, int mode, struct thread *td)  fbopen(dev_t dev, int flag, int mode, struct thread *td)
 {  {
         int unit;          int unit;
           dev_t fdev;
   
         unit = FB_UNIT(dev);          unit = FB_UNIT(dev);
         if (unit >= adapters)          if (unit >= adapters)
                 return ENXIO;                  return ENXIO;
        if (vidcdevsw[unit] == NULL)        if ((fdev = vidcdevsw[unit]) == NULL)
                 return ENXIO;                  return ENXIO;
        return dev_port_dopen(vidcdevsw[unit],         return dev_dopen(fdev, flag, mode, td);
                        makedev(0, adapter[unit]->va_minor), 
                        flag, mode, td); 
 }  }
   
 static int  static int
 fbclose(dev_t dev, int flag, int mode, struct thread *td)  fbclose(dev_t dev, int flag, int mode, struct thread *td)
 {  {
         int unit;          int unit;
           dev_t fdev;
   
         unit = FB_UNIT(dev);          unit = FB_UNIT(dev);
        if (vidcdevsw[unit] == NULL)        if ((fdev = vidcdevsw[unit]) == NULL)
                 return ENXIO;                  return ENXIO;
        return dev_port_dclose(vidcdevsw[unit],        return dev_dclose(fdev, flag, mode, td);
                        makedev(0, adapter[unit]->va_minor), 
                        flag, mode, td); 
 }  }
   
 static int  static int
 fbread(dev_t dev, struct uio *uio, int flag)  fbread(dev_t dev, struct uio *uio, int flag)
 {  {
         int unit;          int unit;
           dev_t fdev;
   
         unit = FB_UNIT(dev);          unit = FB_UNIT(dev);
        if (vidcdevsw[unit] == NULL)        if ((fdev = vidcdevsw[unit]) == NULL)
                 return ENXIO;                  return ENXIO;
        return dev_port_dread(vidcdevsw[unit],        return dev_dread(fdev, uio, flag);
                        makedev(0, adapter[unit]->va_minor), 
                        uio, flag); 
 }  }
   
 static int  static int
 fbwrite(dev_t dev, struct uio *uio, int flag)  fbwrite(dev_t dev, struct uio *uio, int flag)
 {  {
         int unit;          int unit;
           dev_t fdev;
   
         unit = FB_UNIT(dev);          unit = FB_UNIT(dev);
        if (vidcdevsw[unit] == NULL)        if ((fdev = vidcdevsw[unit]) == NULL)
                 return ENXIO;                  return ENXIO;
        return dev_port_dwrite(vidcdevsw[unit],        return dev_dwrite(fdev, uio, flag);
                        makedev(0, adapter[unit]->va_minor), 
                        uio, flag); 
 }  }
   
 static int  static int
 fbioctl(dev_t dev, u_long cmd, caddr_t arg, int flag, struct thread *td)  fbioctl(dev_t dev, u_long cmd, caddr_t arg, int flag, struct thread *td)
 {  {
         int unit;          int unit;
           dev_t fdev;
   
         unit = FB_UNIT(dev);          unit = FB_UNIT(dev);
        if (vidcdevsw[unit] == NULL)        if ((fdev = vidcdevsw[unit]) == NULL)
                 return ENXIO;                  return ENXIO;
        return dev_port_dioctl(vidcdevsw[unit],        return dev_dioctl(fdev, cmd, arg, flag, td);
                        makedev(0, adapter[unit]->va_minor), 
                        cmd, arg, flag, td); 
 }  }
   
 static int  static int
 fbmmap(dev_t dev, vm_offset_t offset, int nprot)  fbmmap(dev_t dev, vm_offset_t offset, int nprot)
 {  {
         int unit;          int unit;
           dev_t fdev;
   
         unit = FB_UNIT(dev);          unit = FB_UNIT(dev);
        if (vidcdevsw[unit] == NULL)        if ((fdev = vidcdevsw[unit]) == NULL)
                 return ENXIO;                  return ENXIO;
        return (dev_port_dmmap(vidcdevsw[unit],        return (dev_dmmap(fdev, offset, nprot));
                        makedev(0, adapter[unit]->va_minor), 
                        offset, nprot)); 
 }  }
   
 #if experimental  #if experimental

Removed from v.1.8  
changed lines
  Added in v.1.9