VirtualBox

Changeset 9558 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jun 9, 2008 6:20:00 PM (17 years ago)
Author:
vboxsync
Message:

Initialize the RTMpNotification stuff.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c

    r9476 r9558  
    5151#include <iprt/semaphore.h>
    5252#include <iprt/spinlock.h>
     53#include <iprt/mp.h>
    5354#include <iprt/process.h>
    5455#include <iprt/thread.h>
     
    107108    ddi_prop_op,            /* property ops */
    108109    NULL,                   /* streamtab  */
    109     D_NEW | D_MP,           /* compat. flag */
     110    D_NEW | D_MP,          /* compat. flag */
    110111    CB_REV                  /* revision */
    111112};
     
    262263            if (RT_SUCCESS(rc))
    263264            {
    264                 /*
    265                  * Initialize the device extension
    266                  */
    267                 rc = supdrvInitDevExt(&g_DevExt);
    268                 if (RT_SUCCESS(rc))
     265                rc = RTR0MpNotificationInit(NULL);
     266                if (RT_SUCCESS(rc))
    269267                {
    270268                    /*
    271                      * Initialize the session hash table.
     269                     * Initialize the device extension
    272270                     */
    273                     memset(g_apSessionHashTab, 0, sizeof(g_apSessionHashTab));
    274                     rc = RTSpinlockCreate(&g_Spinlock);
     271                    rc = supdrvInitDevExt(&g_DevExt);
    275272                    if (RT_SUCCESS(rc))
    276273                    {
    277274                        /*
    278                          * Register ourselves as a character device, pseudo-driver
     275                         * Initialize the session hash table.
    279276                         */
    280                         if (ddi_create_minor_node(pDip, DEVICE_NAME, S_IFCHR, instance, DDI_PSEUDO, 0) == DDI_SUCCESS)
     277                        memset(g_apSessionHashTab, 0, sizeof(g_apSessionHashTab));
     278                        rc = RTSpinlockCreate(&g_Spinlock);
     279                        if (RT_SUCCESS(rc))
    281280                        {
     281                            /*
     282                             * Register ourselves as a character device, pseudo-driver
     283                             */
     284                            if (ddi_create_minor_node(pDip, DEVICE_NAME, S_IFCHR, instance, DDI_PSEUDO, 0) == DDI_SUCCESS)
     285                            {
    282286#ifdef USE_SESSION_HASH
    283                             pState->pDip = pDip;
    284 #endif
    285                             ddi_report_dev(pDip);
    286                             return DDI_SUCCESS;
     287                                pState->pDip = pDip;
     288#endif
     289                                ddi_report_dev(pDip);
     290                                return DDI_SUCCESS;
     291                            }
     292
     293                            /* Is this really necessary? */
     294                            ddi_remove_minor_node(pDip, NULL);
     295                            cmn_err(CE_NOTE,"VBoxDrvSolarisAttach: ddi_create_minor_node failed.");
     296
     297                            RTSpinlockDestroy(g_Spinlock);
     298                            g_Spinlock = NIL_RTSPINLOCK;
    287299                        }
    288 
    289                         /* Is this really necessary? */
    290                         ddi_remove_minor_node(pDip, NULL);
    291                         cmn_err(CE_NOTE,"VBoxDrvSolarisAttach: ddi_create_minor_node failed.");
    292 
    293                         RTSpinlockDestroy(g_Spinlock);
    294                         g_Spinlock = NIL_RTSPINLOCK;
     300                        else
     301                            cmn_err(CE_NOTE, "VBoxDrvSolarisAttach: RTSpinlockCreate failed");
     302                        supdrvDeleteDevExt(&g_DevExt);
    295303                    }
    296304                    else
    297                         cmn_err(CE_NOTE, "VBoxDrvSolarisAttach: RTSpinlockCreate failed");
    298                     supdrvDeleteDevExt(&g_DevExt);
     305                        cmn_err(CE_NOTE, "VBoxDrvSolarisAttach: supdrvInitDevExt failed");
     306                    RTR0MpNotificationTerm(NULL);
    299307                }
    300                 else
    301                     cmn_err(CE_NOTE, "VBoxDrvSolarisAttach: supdrvInitDevExt failed");
    302                 RTR0Term ();
     308                else 
     309                    cmn_err(CE_NOTE, "VBoxDrvSolarisAttach: RTR0MpNotifcationInit failed");
     310                RTR0Term();
    303311            }
    304312            else
     
    359367            g_Spinlock = NIL_RTSPINLOCK;
    360368
     369            RTR0MpNotificationTerm(NULL);
    361370            RTR0Term();
    362371
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette