Annotation of kernel/bsd/dev/ppc/drvUSBCMD/mouse/MouseModuleHeader.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
        !             7:  * Reserved.  This file contains Original Code and/or Modifications of
        !             8:  * Original Code as defined in and that are subject to the Apple Public
        !             9:  * Source License Version 1.1 (the "License").  You may not use this file
        !            10:  * except in compliance with the License.  Please obtain a copy of the
        !            11:  * License at http://www.apple.com/publicsource and read it before using
        !            12:  * this file.
        !            13:  * 
        !            14:  * The Original Code and all software distributed under the License are
        !            15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            19:  * License for the specific language governing rights and limitations
        !            20:  * under the License.
        !            21:  * 
        !            22:  * @APPLE_LICENSE_HEADER_END@
        !            23:  */
        !            24: 
        !            25: /*
        !            26:        File:           MouseModuleHeader.c
        !            27: 
        !            28:        Contains:       Mouse Module Header file
        !            29: 
        !            30:        Version:        xxx put version here xxx
        !            31: 
        !            32:        Copyright:      � 1997-1998 by Apple Computer, Inc., all rights reserved.
        !            33: 
        !            34:        File Ownership:
        !            35: 
        !            36:                DRI:                            Craig Keithley
        !            37: 
        !            38:                Other Contact:          xxx put other contact here xxx
        !            39: 
        !            40:                Technology:                     xxx put technology here xxx
        !            41: 
        !            42:        Writers:
        !            43: 
        !            44:                (TC)    Tom Clark
        !            45:                (CJK)   Craig Keithley
        !            46: 
        !            47:        Change History (most recent first):
        !            48: 
        !            49:         <USB15>         6/23/98        CJK             comment out the 'theMouseData' variable; it's not used (yet).
        !            50:         <USB14>         6/22/98        CJK             make certain that the cursor device is disposed in the finalize
        !            51:                                                                        routine
        !            52:         <USB13>         6/18/98        CJK             add pipe abort to finalize routine
        !            53:         <USB12>         6/11/98        CJK             change display of status to display of interfaceRef (in finalize
        !            54:                                                                        routine)
        !            55:         <USB11>         6/11/98        CJK             remove call to driverentry in MouseModuleInitialize. Add some
        !            56:                                                                        USBExpertStatus messages to the initialize and finalize
        !            57:                                                                        routines.
        !            58:         <USB10>          6/8/98        CJK             add dealloc of full configuration to finalize routine
        !            59:          <USB9>         5/20/98        CJK             change driver name from USBMouseModule to USBHIDMouseModule
        !            60:          <USB8>         4/27/98        TC              Implement a USBDriverLoadingOption to enforce protocol matching.
        !            61:          <USB7>          4/9/98        CJK             remove include of USBClassDrivers.h, USBHIDModules.h, and
        !            62:                                                                        USBDeviceDefines.h
        !            63:                 <6>     3/17/98        CJK             Add parens around pragma unused variables.
        !            64:                 <5>      3/5/98        CJK             use version defines from MouseModuleVersion.h
        !            65:                 <4>      3/2/98        CJK             Add include of USBHIDModules.h. Remove include of HIDEmulation.h
        !            66:                 <3>      2/9/98        CJK             remove deallocate of full configuration memory (the full
        !            67:                                                                        configuration data is not needed for HID devices)
        !            68:                 <2>      2/9/98        CJK             Add interface initialization routine.
        !            69:                 <1>      2/9/97        CJK             First time checkin
        !            70: */
        !            71: 
        !            72: //#include <Types.h>
        !            73: //#include <Devices.h>
        !            74: #include "../driverservices.h"
        !            75: #include "../USB.h"
        !            76: 
        !            77: 
        !            78: #include "MouseModule.h"
        !            79: #include "MouseModuleVersion.h"
        !            80: 
        !            81: static         OSStatus        MouseModuleInitialize (USBDeviceRef device, USBDeviceDescriptorPtr pDesc, UInt32 busPowerAvailable);
        !            82: static         OSStatus        MouseModuleFinalize(USBDeviceRef device, USBDeviceDescriptorPtr pDesc);
        !            83: static         OSStatus        MouseInterfaceInitialize (UInt32 interfacenum, USBInterfaceDescriptorPtr pInterface, USBDeviceDescriptorPtr pDesc, USBDeviceRef device);
        !            84: 
        !            85: extern usbMousePBStruct myMousePB;
        !            86: 
        !            87: //------------------------------------------------------
        !            88: //
        !            89: //     This is the driver description structure that the expert looks for first.
        !            90: //  If it's here, the information within is used to match the driver
        !            91: //  to the device whose descriptor was passed to the expert.
        !            92: //     Information in this block is also used by the expert when an
        !            93: //  entry is created in the Name Registry.
        !            94: //
        !            95: //------------------------------------------------------
        !            96: /* naga define in kbd 
        !            97: USBDriverDescription   TheUSBDriverDescription = 
        !            98: {
        !            99:        // Signature info
        !           100:        kTheUSBDriverDescriptionSignature,
        !           101:        kInitialUSBDriverDescriptor,
        !           102:        
        !           103:        // Device Info
        !           104:        0,                                                                              // vendor = not device specific
        !           105:        0,                                                                              // product = not device specific
        !           106:        0,                                                                              // version of product = not device specific
        !           107:        kUSBMouseInterfaceProtocol,                             // protocol = not device specific
        !           108:        
        !           109:        // Interface Info       (* I don't think this would always be required...*)                             
        !           110:        0,                                                                              // Configuration Value
        !           111:        0,                                                                              // Interface Number
        !           112:        kUSBHIDInterfaceClass,                                  // Interface Class
        !           113:        kUSBBootInterfaceSubClass,                              // Interface SubClass
        !           114:        kUSBMouseInterfaceProtocol,                             // Interface Protocol
        !           115:                
        !           116:        
        !           117:        // Driver Info
        !           118:        "USBHIDMouseModule",                                            // Driver name for Name Registry
        !           119:        kUSBHIDInterfaceClass,                                  // Device Class  (from USBDeviceDefines.h)
        !           120:        kUSBBootInterfaceSubClass,                              // Device Subclass 
        !           121:        kMouseHexMajorVers, 
        !           122:        kMouseHexMinorVers, 
        !           123:        kMouseCurrentRelease, 
        !           124:        kMouseReleaseStage,                                             // version of driver
        !           125:        
        !           126:        // Driver Loading Info
        !           127:        kUSBProtocolMustMatch                                   // Flags (currently undefined)
        !           128: };
        !           129: */
        !           130: /* naga defined in CompositeDriverDescription.c 
        !           131: USBClassDriverPluginDispatchTable TheClassDriverPluginDispatchTable =
        !           132: {
        !           133:        kClassDriverPluginVersion,                              // Version of this structure
        !           134:        0,                                                                              // Hardware Validation Procedure
        !           135:        MouseModuleInitialize,                                  // Initialization Procedure
        !           136:        MouseInterfaceInitialize,                               // Interface Initialization Procedure
        !           137:        MouseModuleFinalize,                                    // Finalization Procedure
        !           138:        0,                                                                              // Driver Notification Procedure
        !           139: };
        !           140:        
        !           141: */
        !           142: // Initialization function
        !           143: // Called upon load by Expert
        !           144: static         OSStatus        MouseModuleInitialize (USBDeviceRef device, USBDeviceDescriptorPtr pDesc, UInt32 busPowerAvailable)
        !           145: {
        !           146: #pragma unused (busPowerAvailable)
        !           147: #pragma unused (pDesc)
        !           148:        USBExpertStatus(device, "USBHIDMouseModule: Entered via KeyboardModuleInitialize", device);
        !           149:        return (OSStatus)noErr;
        !           150: }
        !           151: 
        !           152: // Interface Initialization Initialization function
        !           153: // Called upon load by Expert
        !           154: static         OSStatus        MouseInterfaceInitialize (UInt32 interfacenum, USBInterfaceDescriptorPtr pInterface, USBDeviceDescriptorPtr pDesc, USBDeviceRef device)
        !           155: {
        !           156:        InterfaceEntry(interfacenum, pInterface, pDesc, device);
        !           157:        return (OSStatus)noErr;
        !           158: }
        !           159: 
        !           160: 
        !           161: 
        !           162: // Termination function
        !           163: // Called by Expert when driver is being shut down
        !           164: static OSStatus MouseModuleFinalize(USBDeviceRef theDeviceRef, USBDeviceDescriptorPtr pDesc)
        !           165: {
        !           166: #pragma unused (pDesc)
        !           167: OSStatus myErr;
        !           168: //USBHIDData           theMouseData;
        !           169: 
        !           170:        USBExpertStatus(theDeviceRef, "USBHIDMouseModule: Finalize", theDeviceRef);
        !           171:        
        !           172:        /*
        !           173:        if (myMousePB.pSHIMInterruptRoutine)                    
        !           174:        {                                                                                               
        !           175:                USBExpertStatus(theDeviceRef, "USBHIDMouseModule: Release mouse buttons", theDeviceRef);
        !           176:                theMouseData.mouse.buttons = 0;
        !           177:                theMouseData.mouse.XDelta = 1;
        !           178:                theMouseData.mouse.YDelta = 1;
        !           179:                (*myMousePB.pSHIMInterruptRoutine)(myMousePB.interruptRefcon, (void *)&theMouseData);
        !           180:        }
        !           181:        */
        !           182:        
        !           183:        if (myMousePB.pCursorDeviceInfo != 0)                           
        !           184:        {
        !           185:                USBExpertStatus(theDeviceRef, "USBHIDMouseModule: Remove CDM device", theDeviceRef);
        !           186:                CursorDeviceDisposeDevice(myMousePB.pCursorDeviceInfo);
        !           187:                myMousePB.pCursorDeviceInfo = 0;
        !           188:        }
        !           189:        
        !           190:        if (myMousePB.pFullConfigDescriptor != nil)
        !           191:        {
        !           192:                if (myMousePB.pipeRef)
        !           193:                {
        !           194:                        USBExpertStatus(theDeviceRef, "USBHIDMouseModule: Aborting interrupt pipe", theDeviceRef);
        !           195:                        USBAbortPipeByReference(myMousePB.pipeRef);
        !           196:                }
        !           197:                myMousePB.pb.usbReference = theDeviceRef;
        !           198:                myMousePB.pb.pbVersion = kUSBCurrentPBVersion;
        !           199:                myMousePB.pb.usbFlags = 0;
        !           200:                myMousePB.pb.usbRefcon = 0;                     
        !           201:                myMousePB.pb.usbBuffer = myMousePB.pFullConfigDescriptor;               
        !           202:                myMousePB.pb.usbCompletion = (USBCompletion)-1;
        !           203:                
        !           204:                myErr = USBDeallocMem(&myMousePB.pb);
        !           205:        }
        !           206:        
        !           207:        return (OSStatus)noErr;
        !           208: }
        !           209: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.