Changeset 70044 in vbox
- Timestamp:
- Dec 9, 2017 12:52:16 AM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 119582
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-netbsd.c
r70043 r70044 112 112 113 113 114 struct vboxguest_ session114 struct vboxguest_fdata 115 115 { 116 116 vboxguest_softc *sc; … … 145 145 static int VBoxGuestNetBSDClose(struct file *fp); 146 146 static int VBoxGuestNetBSDIOCtl(struct file *fp, u_long cmd, void *addr); 147 static int VBoxGuestNetBSDIOCtlSlow(struct vboxguest_ session *session, u_long command, void *data);147 static int VBoxGuestNetBSDIOCtlSlow(struct vboxguest_fdata *fdata, u_long command, void *data); 148 148 static int VBoxGuestNetBSDPoll(struct file *fp, int events); 149 149 … … 599 599 int rc; 600 600 vboxguest_softc *sc; 601 struct vboxguest_ session *session;601 struct vboxguest_fdata *fdata; 602 602 file_t *fp; 603 603 int fd, error; … … 617 617 } 618 618 619 session = kmem_alloc(sizeof(*session), KM_SLEEP);620 if ( session== NULL)619 fdata = kmem_alloc(sizeof(*fdata), KM_SLEEP); 620 if (fdata == NULL) 621 621 { 622 622 return (ENOMEM); 623 623 } 624 624 625 session->sc = sc;625 fdata->sc = sc; 626 626 627 627 if ((error = fd_allocfile(&fp, &fd)) != 0) 628 628 { 629 kmem_free( session, sizeof(*session));629 kmem_free(fdata, sizeof(*fdata)); 630 630 return error; 631 631 } … … 634 634 * Create a new session. 635 635 */ 636 rc = VGDrvCommonCreateUserSession(&g_DevExt, & session->session);636 rc = VGDrvCommonCreateUserSession(&g_DevExt, &fdata->session); 637 637 if (! RT_SUCCESS(rc)) 638 638 { 639 639 aprint_error_dev(sc->sc_dev, "VBox session creation failed\n"); 640 640 closef(fp); /* ??? */ 641 kmem_free( session, sizeof(*session));641 kmem_free(fdata, sizeof(*fdata)); 642 642 return RTErrConvertToErrno(rc); 643 643 } 644 644 ASMAtomicIncU32(&cUsers); 645 return fd_clone(fp, fd, flags, &vboxguest_fileops, session);645 return fd_clone(fp, fd, flags, &vboxguest_fileops, fdata); 646 646 647 647 } … … 653 653 static int VBoxGuestNetBSDClose(struct file *fp) 654 654 { 655 struct vboxguest_ session *session= fp->f_data;656 vboxguest_softc *sc = session->sc;655 struct vboxguest_fdata *fdata = fp->f_data; 656 vboxguest_softc *sc = fdata->sc; 657 657 658 658 LogFlow((DEVICE_NAME ": %s\n", __func__)); 659 659 660 VGDrvCommonCloseSession(&g_DevExt, session->session);660 VGDrvCommonCloseSession(&g_DevExt, fdata->session); 661 661 ASMAtomicDecU32(&cUsers); 662 662 663 kmem_free( session, sizeof(*session));663 kmem_free(fdata, sizeof(*fdata)); 664 664 665 665 return 0; … … 672 672 static int VBoxGuestNetBSDIOCtl(struct file *fp, u_long command, void *data) 673 673 { 674 struct vboxguest_ session *session= fp->f_data;674 struct vboxguest_fdata *fdata = fp->f_data; 675 675 676 676 if (VBGL_IOCTL_IS_FAST(command)) 677 return VGDrvCommonIoCtlFast(command, &g_DevExt, session->session);678 679 return VBoxGuestNetBSDIOCtlSlow( session, command, data);680 } 681 682 static int VBoxGuestNetBSDIOCtlSlow(struct vboxguest_ session *session, u_long command, void *data)683 { 684 vboxguest_softc *sc = session->sc;677 return VGDrvCommonIoCtlFast(command, &g_DevExt, fdata->session); 678 679 return VBoxGuestNetBSDIOCtlSlow(fdata, command, data); 680 } 681 682 static int VBoxGuestNetBSDIOCtlSlow(struct vboxguest_fdata *fdata, u_long command, void *data) 683 { 684 vboxguest_softc *sc = fdata->sc; 685 685 size_t cbReq = IOCPARM_LEN(command); 686 686 PVBGLREQHDR pHdr = NULL; … … 758 758 * Process the IOCtl. 759 759 */ 760 rc = VGDrvCommonIoCtl(command, &g_DevExt, session->session, pHdr, cbReq);760 rc = VGDrvCommonIoCtl(command, &g_DevExt, fdata->session, pHdr, cbReq); 761 761 if (RT_SUCCESS(rc)) 762 762 { … … 796 796 static int VBoxGuestNetBSDPoll(struct file *fp, int events) 797 797 { 798 struct vboxguest_ session *session= fp->f_data;799 vboxguest_softc *sc = session->sc;798 struct vboxguest_fdata *fdata = fp->f_data; 799 vboxguest_softc *sc = fdata->sc; 800 800 801 801 int rc = 0; … … 807 807 808 808 u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq); 809 if ( session->session->u32MousePosChangedSeq != u32CurSeq)809 if (fdata->session->u32MousePosChangedSeq != u32CurSeq) 810 810 { 811 811 events_processed = events & (POLLIN | POLLRDNORM); 812 session->session->u32MousePosChangedSeq = u32CurSeq;812 fdata->session->u32MousePosChangedSeq = u32CurSeq; 813 813 } 814 814 else
Note:
See TracChangeset
for help on using the changeset viewer.