Annotation of kernel/bsd/dev/ppc/drvUSBCMD/mouse/MouseModuleHeader.c, revision 1.1.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.