Annotation of XNU/iokit/IOKit/firewire/IOFWIsochChannel.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * The contents of this file constitute Original Code as defined in and
                      7:  * are subject to the Apple Public Source License Version 1.1 (the
                      8:  * "License").  You may not use this file except in compliance with the
                      9:  * License.  Please obtain a copy of the License at
                     10:  * http://www.apple.com/publicsource and read it before using this file.
                     11:  * 
                     12:  * This Original Code and all software distributed under the License are
                     13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     17:  * License for the specific language governing rights and limitations
                     18:  * under the License.
                     19:  * 
                     20:  * @APPLE_LICENSE_HEADER_END@
                     21:  */
                     22: /*
                     23:  * Copyright (c) 1999 Apple Computer, Inc.  All rights reserved.
                     24:  *
                     25:  * HISTORY
                     26:  *
                     27:  */
                     28: 
                     29: 
                     30: #ifndef _IOKIT_IOFWISOCHCHANNEL_H
                     31: #define _IOKIT_IOFWISOCHCHANNEL_H
                     32: 
                     33: #include <libkern/c++/OSObject.h>
                     34: #include <IOKit/firewire/IOFWRegs.h>
                     35: 
                     36: enum
                     37: {
                     38:     kFWIsochChannelUnknownCondition    = 0,
                     39:     kFWIsochChannelNotEnoughBandwidth  = 1,
                     40:     kFWIsochChannelChannelNotAvailable = 2
                     41: };
                     42: 
                     43: class IOFireWireController;
                     44: class IOFWIsochChannel;
                     45: class IOFWIsochPort;
                     46: class OSSet;
                     47: 
                     48: typedef IOReturn       (FWIsochChannelForceStopNotificationProc) (
                     49:         void *                         refCon,
                     50:        IOFWIsochChannel *              isochChannelID,
                     51:        UInt32                          stopCondition);
                     52: 
                     53: typedef FWIsochChannelForceStopNotificationProc *FWIsochChannelForceStopNotificationProcPtr;
                     54: 
                     55: class IOFWIsochChannel : public OSObject
                     56: {
                     57:     OSDeclareDefaultStructors(IOFWIsochChannel)
                     58: 
                     59: protected:
                     60:     IOFireWireController *fControl;
                     61:     FWIsochChannelForceStopNotificationProcPtr fStopProc;
                     62:     void *             fStopRefCon;
                     63:     IOFWIsochPort *    fTalker;
                     64:     OSSet *            fListeners;
                     65:     bool               fDoIRM;
                     66:     UInt32             fBandwidth;     // Allocation units used
                     67:     UInt32             fMBitSec;
                     68:     IOFWSpeed          fPrefSpeed;
                     69:     IOFWSpeed          fSpeed;         // Actual speed used
                     70:     UInt32             fChannel;       // Actual channel used
                     71: 
                     72:     static void                threadFunc(void * arg, void *);
                     73:     virtual IOReturn   updateBandwidth(bool claim);
                     74:     virtual void       reallocBandwidth();     
                     75:     virtual void       free();
                     76: 
                     77: public:
                     78:     // Called from IOFireWireController
                     79:     virtual bool init(IOFireWireController *control,
                     80:                bool doIRM, UInt32 bandwidth, IOFWSpeed prefSpeed,
                     81:                FWIsochChannelForceStopNotificationProcPtr stopProc,
                     82:                void *stopRefCon);
                     83:     virtual void handleBusReset();
                     84: 
                     85:     // Called by clients
                     86:     virtual IOReturn setTalker(IOFWIsochPort *talker);
                     87:     virtual IOReturn addListener(IOFWIsochPort *listener);
                     88: 
                     89:     virtual IOReturn allocateChannel();
                     90:     virtual IOReturn releaseChannel();
                     91:     virtual IOReturn start();
                     92:     virtual IOReturn stop();
                     93: };
                     94: 
                     95: #endif /* ! _IOKIT_IOFWISOCHCHANNEL_H */
                     96: 

unix.superglobalmegacorp.com

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