Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/IOKit/ndrvsupport/IONDRVLibraries.h

Source at commit 1129 created 12 years 11 months ago.
By meklort, Change options.o so that it reloads the system config as well. Also change it so that it uses that config for variables (NOTE: if the calue exists in chameleonConfig, it's used instead.
1
2#ifndef __IONDRVLIBRARIES__
3#define __IONDRVLIBRARIES__
4
5#include <libkern/OSByteOrder.h>
6#include <libkern/OSAtomic.h>
7#include <IOKit/ndrvsupport/IOMacOSTypes.h>
8#include <IOKit/graphics/IOGraphicsTypes.h>
9
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15/* NameRegistry error codes */
16enum {
17 nrLockedErr = -2536,
18 nrNotEnoughMemoryErr = -2537,
19 nrInvalidNodeErr = -2538,
20 nrNotFoundErr = -2539,
21 nrNotCreatedErr = -2540,
22 nrNameErr = -2541,
23 nrNotSlotDeviceErr = -2542,
24 nrDataTruncatedErr = -2543,
25 nrPowerErr = -2544,
26 nrPowerSwitchAbortErr = -2545,
27 nrTypeMismatchErr = -2546,
28 nrNotModifiedErr = -2547,
29 nrOverrunErr = -2548,
30 nrResultCodeBase = -2549,
31 nrPathNotFound = -2550, /* a path component lookup failed */
32 nrPathBufferTooSmall = -2551, /* buffer for path is too small */
33 nrInvalidEntryIterationOp = -2552, /* invalid entry iteration operation */
34 nrPropertyAlreadyExists = -2553, /* property already exists */
35 nrIterationDone = -2554, /* iteration operation is done */
36 nrExitedIteratorScope = -2555, /* outer scope of iterator was exited */
37 nrTransactionAborted = -2556, /* transaction was aborted */
38
39 gestaltUndefSelectorErr = -5551 /*undefined selector was passed to Gestalt*/
40};
41
42enum {
43 kNVRAMProperty = 0x00000020, // matches NR
44};
45
46
47/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
48
49#ifndef _IOKIT_IOSERVICE_H
50typedef struct IOService IOService;
51#endif
52
53IOReturn _IONDRVLibrariesInitialize( IOService * provider );
54IOReturn _IONDRVLibrariesFinalize( IOService * provider );
55
56#ifndef kAAPLRegEntryIDKey
57#define kAAPLRegEntryIDKey "AAPL,RegEntryID"
58#endif
59
60/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
61
62UInt32 EndianSwap32Bit( UInt32 data );
63
64UInt16 EndianSwap16Bit( UInt16 data );
65
66void SynchronizeIO(void);
67
68OSErr ExpMgrConfigReadLong(
69 RegEntryIDPtr node,
70 LogicalAddress configAddr,
71 UInt32 * valuePtr);
72
73OSErr ExpMgrConfigWriteLong(
74 RegEntryIDPtr node,
75 LogicalAddress configAddr,
76 UInt32 value);
77
78OSErr ExpMgrConfigReadWord(
79 RegEntryIDPtr node,
80 LogicalAddress configAddr,
81 UInt16 * valuePtr);
82
83OSErr ExpMgrConfigWriteWord(
84 RegEntryIDPtr node,
85 LogicalAddress configAddr,
86 UInt16 value);
87
88OSErr ExpMgrConfigReadByte(
89 RegEntryIDPtr node,
90 LogicalAddress configAddr,
91 UInt8 * valuePtr);
92
93OSErr ExpMgrConfigWriteByte(
94 RegEntryIDPtr node,
95 LogicalAddress configAddr,
96 UInt8 value);
97
98OSErr ExpMgrIOReadLong(
99 RegEntryIDPtr node,
100 LogicalAddress ioAddr,
101 UInt32 * valuePtr);
102
103OSErr ExpMgrIOWriteLong(
104 RegEntryIDPtr node,
105 LogicalAddress ioAddr,
106 UInt32 value);
107
108OSErr ExpMgrIOReadWord(
109 RegEntryIDPtr node,
110 LogicalAddress ioAddr,
111 UInt16 * valuePtr);
112
113OSErr ExpMgrIOWriteWord(
114 RegEntryIDPtr node,
115 LogicalAddress ioAddr,
116 UInt16 value);
117
118OSErr ExpMgrIOReadByte(
119 RegEntryIDPtr node,
120 LogicalAddress ioAddr,
121 UInt8 * valuePtr);
122
123OSErr ExpMgrIOWriteByte(
124 RegEntryIDPtr node,
125 LogicalAddress ioAddr,
126 UInt8 value);
127
128/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
129/*******************************************************************************
130 *
131 * Foundation Types
132 *
133 */
134/* Value of a property */
135typedef void * RegPropertyValue;
136/* Length of property value */
137typedef UInt32 RegPropertyValueSize;
138
139/*******************************************************************************/
140
141/*******************************************************************************
142 *
143 * Root Entry Name Definitions (Applies to all Names in the RootNameSpace)
144 *
145 * + Names are a colon-separated list of name components. Name components
146 * may not themselves contain colons.
147 * + Names are presented as null-terminated ASCII character strings.
148 * + Names follow similar parsing rules to Apple file system absolute
149 * and relative paths. However the '::' parent directory syntax is
150 * not currently supported.
151 */
152/* Max length of Entry Name */
153enum {
154 kRegCStrMaxEntryNameLength = 47
155};
156
157/* Entry Names are single byte ASCII */
158typedef char RegCStrEntryName;
159typedef char * RegCStrEntryNamePtr;
160/* length of RegCStrEntryNameBuf = kRegCStrMaxEntryNameLength+1*/
161typedef char RegCStrEntryNameBuf[48];
162typedef char RegCStrPathName;
163typedef UInt32 RegPathNameSize;
164enum {
165 kRegPathNameSeparator = ':', /* 0x3A */
166 kRegEntryNameTerminator = 0x00, /* '\0' */
167 kRegPathNameTerminator = 0x00 /* '\0' */
168};
169
170/*******************************************************************************
171 *
172 * Property Name and ID Definitions
173 * (Applies to all Properties Regardless of NameSpace)
174 */
175enum {
176 kRegMaximumPropertyNameLength = 31, /* Max length of Property Name */
177 kRegPropertyNameTerminator = 0x00 /* '\0' */
178};
179
180typedef char RegPropertyNameBuf[32];
181typedef char RegPropertyName;
182typedef char * RegPropertyNamePtr;
183enum {
184 kRegMaxPropertyNameLength = kRegMaximumPropertyNameLength
185};
186
187/*******************************************************************************
188 *
189 * Iteration Operations
190 *
191 * These specify direction when traversing the name relationships
192 */
193typedef UInt32 RegIterationOp;
194typedef RegIterationOp RegEntryIterationOp;
195enum {
196 /* Absolute locations*/
197 kRegIterRoot = 0x00000002, /* "Upward" Relationships */
198 kRegIterParents = 0x00000003, /* include all parent(s) of entry */
199 /* "Downward" Relationships*/
200 kRegIterChildren = 0x00000004, /* include all children */
201 kRegIterSubTrees = 0x00000005, /* include all sub trees of entry */
202 kRegIterDescendants = 0x00000005, /* include all descendants of entry */
203 /* "Horizontal" Relationships */
204 kRegIterSibling = 0x00000006, /* include all siblings */
205 /* Keep doing the same thing*/
206 kRegIterContinue = 0x00000001
207};
208
209/*******************************************************************************
210 *
211 * Name Entry and Property Modifiers
212 *
213 *
214 *
215 * Modifiers describe special characteristics of names
216 * and properties. Modifiers might be supported for
217 * some names and not others.
218 *
219 * Device Drivers should not rely on functionality
220 * specified as a modifier.
221 */
222typedef UInt32 RegModifiers;
223typedef RegModifiers RegEntryModifiers;
224typedef RegModifiers RegPropertyModifiers;
225enum {
226 kRegNoModifiers = 0x00000000, /* no entry modifiers in place */
227 kRegUniversalModifierMask = 0x0000FFFF, /* mods to all entries */
228 kRegNameSpaceModifierMask = 0x00FF0000, /* mods to all entries within namespace */
229 kRegModifierMask = (RegModifiers)0xFF000000 /* mods to just this entry */
230};
231
232/* Universal Property Modifiers */
233enum {
234 kRegPropertyValueIsSavedToNVRAM = 0x00000020, /* property is non-volatile (saved in NVRAM) */
235 kRegPropertyValueIsSavedToDisk = 0x00000040 /* property is non-volatile (saved on disk) */
236};
237
238typedef size_t Size;
239
240#ifndef _IOKIT_IOREGISTRYENTRY_H
241typedef struct IORegistryIterator IORegistryIterator;
242typedef struct OSIterator OSIterator;
243#endif /* _IOKIT_IOREGISTRYENTRY_H */
244typedef IORegistryIterator * RegEntryIter;
245typedef OSIterator * RegPropertyIter;
246
247OSStatus RegistryEntryIDCopy( const RegEntryID * entryID, RegEntryID * to );
248
249OSStatus RegistryEntryIDInit( RegEntryID * entryID );
250
251Boolean RegistryEntryIDCompare( const RegEntryID * id1, const RegEntryID * id2);
252
253OSStatus RegistryPropertyGetSize(
254 const RegEntryID * entryID,
255 const RegPropertyName * propertyName,
256 RegPropertyValueSize * propertySize);
257
258OSStatus RegistryPropertyGet(
259 const RegEntryID * entryID,
260 const RegPropertyName * propertyName,
261 void * propertyValue,
262 RegPropertyValueSize * propertySize);
263
264OSStatus RegistryPropertyCreate(
265 const RegEntryID * entryID,
266 const RegPropertyName * propertyName,
267 const void * propertyValue,
268 RegPropertyValueSize propertySize);
269
270OSStatus RegistryPropertyDelete(
271 const RegEntryID * entryID,
272 const RegPropertyName * propertyName);
273
274OSStatus RegistryPropertySet(
275 const RegEntryID * entryID,
276 const RegPropertyName * propertyName,
277 const void * propertyValue,
278 RegPropertyValueSize propertySize);
279
280OSStatus RegistryPropertyGetMod(
281 const RegEntryID * entry,
282 const RegPropertyName * name,
283 RegPropertyModifiers * modifiers);
284
285OSStatus RegistryPropertySetMod(
286 const RegEntryID * entry,
287 const RegPropertyName * name,
288 RegPropertyModifiers modifiers);
289
290OSStatus RegistryPropertyIterateCreate(
291 const RegEntryID * entry,
292 RegPropertyIter * cookie);
293
294OSStatus RegistryPropertyIterateDispose( RegPropertyIter * cookie);
295
296OSStatus RegistryPropertyIterate(
297 RegPropertyIter * cookie,
298 RegPropertyName * foundProperty,
299 Boolean * done);
300
301OSStatus RegistryEntryIterateCreate( RegEntryIter * cookie);
302
303OSStatus RegistryEntryIterateDispose( RegEntryIter * cookie);
304
305OSStatus RegistryEntryIterateSet( RegEntryIter * cookie,
306 const RegEntryID * startEntryID);
307
308OSStatus RegistryEntryIterate( RegEntryIter * cookie,
309 RegEntryIterationOp relationship,
310 RegEntryID * foundEntry,
311 Boolean * done);
312
313OSStatus RegistryCStrEntryToName( const RegEntryID * entryID,
314 RegEntryID * parentEntry,
315 RegCStrEntryName * nameComponent,
316 Boolean * done );
317
318OSStatus RegistryCStrEntryLookup( const RegEntryID * parentEntry,
319 const RegCStrPathName * path,
320 RegEntryID * newEntry);
321
322OSStatus RegistryCStrEntryCreate( const RegEntryID * parentEntry,
323 const RegCStrPathName * name,
324 RegEntryID * newEntry);
325
326OSStatus RegistryEntryDelete(const RegEntryID * entryID);
327
328OSStatus RegistryEntryIDDispose(RegEntryID * entryID);
329
330//
331
332OSStatus RegistryEntryCopy(
333 RegEntryID * parentEntryID,
334 RegEntryID * sourceDevice,
335 RegEntryID * destDevice);
336
337OSStatus RegistryEntrySearch(
338 RegEntryIter * cookie,
339 RegEntryIterationOp relationship,
340 RegEntryID * foundEntry,
341 Boolean * done,
342 const RegPropertyName * propertyName,
343 const void * propertyValue,
344 RegPropertyValueSize propertySize);
345
346OSStatus RegistryEntryToPathSize(
347 const RegEntryID * entryID,
348 RegPathNameSize * pathSize);
349
350OSStatus RegistryCStrEntryToPath(
351 const RegEntryID * entryID,
352 RegCStrPathName * pathName,
353 RegPathNameSize pathSize);
354
355OSStatus RegistryPropertyRename(
356 const RegEntryID * entry,
357 const RegPropertyName * oldName,
358 const RegPropertyName * newName);
359
360OSStatus RegistryEntryGetMod(
361 const RegEntryID * entry,
362 RegEntryModifiers * modifiers);
363
364OSStatus RegistryEntrySetMod(
365 const RegEntryID * entry,
366 RegEntryModifiers modifiers);
367
368OSStatus RegistryEntryMod(
369 RegEntryIter * cookie,
370 RegEntryIterationOp relationship,
371 RegEntryID * foundEntry,
372 Boolean * done,
373 RegEntryModifiers matchingModifiers);
374
375OSStatus RegistryEntryPropertyMod(
376 RegEntryIter * cookie,
377 RegEntryIterationOp relationship,
378 RegEntryID * foundEntry,
379 Boolean * done,
380 RegPropertyModifiers matchingModifiers);
381
382/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
383
384void SynchronizeIO(void);
385
386Boolean CompareAndSwap(
387 UInt32 oldVvalue,
388 UInt32 newValue,
389 UInt32 * OldValueAdr);
390
391UInt32 CStrLen(const char * src);
392
393char * CStrCopy( char * dst, const char * src);
394
395SInt16 CStrCmp(
396 const char * s1,
397 const char * s2);
398
399char * CStrCat(
400 char * dst,
401 const char * src);
402char * CStrNCopy(
403 char * dst,
404 const char * src,
405 UInt32 max);
406SInt16 CStrNCmp(
407 const char * s1,
408 const char * s2,
409 UInt32 max);
410char * CStrNCat(
411 char * dst,
412 const char * src,
413 UInt32 max);
414
415void BlockCopy(
416 const void * srcPtr,
417 void * destPtr,
418 Size byteCount);
419void BlockMove(
420 const void * srcPtr,
421 void * destPtr,
422 Size byteCount);
423void BlockMoveData(
424 const void * srcPtr,
425 void * destPtr,
426 Size byteCount);
427void BlockMoveDataUncached(
428 const void * srcPtr,
429 void * destPtr,
430 Size byteCount);
431void BlockMoveUncached(
432 const void * srcPtr,
433 void * destPtr,
434 Size byteCount);
435void BlockZero(
436 const void * srcPtr,
437 Size byteCount);
438void BlockZeroUncached(
439 const void * srcPtr,
440 Size byteCount);
441
442char * PStrCopy( char *to, const char *from );
443
444void PStrToCStr( char *to, const char *from );
445
446void CStrToPStr( char *to, const char *from );
447
448LogicalAddress PoolAllocateResident(ByteCount byteSize, Boolean clear);
449
450OSStatus PoolDeallocate( LogicalAddress address );
451
452UInt32 CurrentExecutionLevel(void);
453
454UnsignedWide UpTime( void );
455
456UnsignedWide AddAbsoluteToAbsolute(UnsignedWide left, UnsignedWide right);
457
458UnsignedWide SubAbsoluteFromAbsolute(UnsignedWide left, UnsignedWide right);
459
460UnsignedWide DurationToAbsolute( Duration theDuration);
461
462UnsignedWide AddDurationToAbsolute( Duration duration, UnsignedWide absolute );
463
464UnsignedWide NanosecondsToAbsolute ( UnsignedWide theNanoseconds);
465
466UnsignedWide AbsoluteToNanoseconds( UnsignedWide absolute );
467
468Duration AbsoluteDeltaToDuration( UnsignedWide left, UnsignedWide right );
469
470Duration AbsoluteToDuration( UnsignedWide result );
471
472OSStatus DelayForHardware( UnsignedWide time );
473
474OSStatus DelayUntil( UnsignedWide time );
475
476OSStatus DelayFor( Duration theDuration );
477
478void SysDebugStr( const char * from );
479
480void SysDebug( void );
481
482/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
483
484enum {
485 paramErr = -50, /*error in user parameter list*/
486 noHardwareErr = -200, /*Sound Manager Error Returns*/
487 notEnoughHardwareErr = -201, /*Sound Manager Error Returns*/
488 userCanceledErr = -128,
489 qErr = -1, /*queue element not found during deletion*/
490 vTypErr = -2, /*invalid queue element*/
491 corErr = -3, /*core routine number out of range*/
492 unimpErr = -4, /*unimplemented core routine*/
493 SlpTypeErr = -5, /*invalid queue element*/
494 seNoDB = -8, /*no debugger installed to handle debugger command*/
495 controlErr = -17, /*I/O System Errors*/
496 statusErr = -18, /*I/O System Errors*/
497 readErr = -19, /*I/O System Errors*/
498 writErr = -20, /*I/O System Errors*/
499 badUnitErr = -21, /*I/O System Errors*/
500 unitEmptyErr = -22, /*I/O System Errors*/
501 openErr = -23, /*I/O System Errors*/
502 closErr = -24, /*I/O System Errors*/
503 dRemovErr = -25, /*tried to remove an open driver*/
504 dInstErr = -26, /*DrvrInstall couldn't find driver in resources*/
505
506 badCksmErr = -69, /*addr mark checksum didn't check*/
507};
508enum {
509 durationMicrosecond = -1, /* Microseconds are negative*/
510 durationMillisecond = 1, /* Milliseconds are positive*/
511 durationSecond = 1000, /* 1000 * durationMillisecond*/
512 durationMinute = 60000, /* 60 * durationSecond,*/
513 durationHour = 3600000, /* 60 * durationMinute,*/
514 durationDay = 86400000, /* 24 * durationHour,*/
515 durationNoWait = 0, /* don't block*/
516 durationForever = 0x7FFFFFFF /* no time limit*/
517};
518#ifndef NULL
519 #if !defined(__cplusplus) && (defined(__SC__) || defined(THINK_C))
520 /* Symantec C compilers (but not C++) want NULL and nil to be (void*)0 */
521 #define NULL ((void *) 0)
522 #else
523 /* in case int is 16-bits, make sure NULL is 32-bits */
524 #define NULL 0L
525 #endif
526#endif
527
528#ifndef nil
529 #define nil NULL
530#endif
531
532typedef ResType VSLGestaltType;
533
534enum {
535 clutType = 0, /*0 if lookup table*/
536 fixedType = 1, /*1 if fixed table*/
537 directType = 2, /*2 if direct values*/
538 RGBDirect = 16 /* 16 & 32 bits/pixel pixelType value */
539};
540typedef UInt32 * UInt32Ptr;
541
542typedef struct IOHardwareCursorDescriptor HardwareCursorDescriptorRec;
543typedef HardwareCursorDescriptorRec * HardwareCursorDescriptorPtr;
544typedef struct IOHardwareCursorInfo HardwareCursorInfoRec;
545typedef HardwareCursorInfoRec * HardwareCursorInfoPtr;
546
547typedef ResType InterruptServiceType;
548typedef struct _VSLService * InterruptServiceIDType;
549typedef InterruptServiceIDType * InterruptServiceIDPtr;
550
551enum {
552 kVBLInterruptServiceType = 'vbl ',
553 kHBLInterruptServiceType = 'hbl ',
554 kFrameInterruptServiceType = 'fram',
555 kConnectInterruptServiceType = 'dci ', /* Renamed -- Use kFBCheckInterruptServiceType*/
556 kFBConnectInterruptServiceType = kConnectInterruptServiceType, /* Demand to check configuration (Hardware unchanged)*/
557 kFBChangedInterruptServiceType = 'chng', /* Demand to rebuild (Hardware has reinitialized on dependent change)*/
558 kFBOfflineInterruptServiceType = 'remv', /* Demand to remove framebuffer (Hardware not available on dependent change -- but must not buserror)*/
559 kFBOnlineInterruptServiceType = 'add ' /* Notice that hardware is available (after being removed)*/
560};
561
562enum {
563 kVSLClamshellStateGestaltType = 'clam',
564};
565
566OSStatus
567VSLGestalt( VSLGestaltType selector, UInt32 * response );
568
569OSStatus
570VSLSetDisplayConfiguration(RegEntryID * entryID,
571 RegPropertyName * propertyName,
572 RegPropertyValue configData,
573 RegPropertyValueSize configDataSize);
574OSErr
575VSLNewInterruptService(
576 RegEntryID * serviceDevice,
577 InterruptServiceType serviceType,
578 InterruptServiceIDPtr serviceID);
579
580OSErr
581VSLWaitOnInterruptService(
582 InterruptServiceIDType serviceID,
583 Duration timeout);
584
585OSErr
586VSLDisposeInterruptService(InterruptServiceIDType serviceID);
587
588OSErr
589VSLDoInterruptService(InterruptServiceIDType serviceID);
590
591Boolean
592VSLPrepareCursorForHardwareCursor(
593 void * cursorRef,
594 IOHardwareCursorDescriptor * hardwareDescriptor,
595 IOHardwareCursorInfo * hwCursorInfo);
596
597typedef UnsignedWide Nanoseconds;
598enum {
599 /* Version Release Stage Codes */
600 developStage = 0x20,
601 alphaStage = 0x40,
602 betaStage = 0x60,
603 finalStage = 0x80
604};
605
606/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
607
608typedef struct OpaqueIOCommandID* IOCommandID;
609
610typedef UInt32 IOCommandKind;
611typedef UInt32 IOCommandCode;
612
613OSErr IOCommandIsComplete( IOCommandID commandID, OSErr result);
614
615/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
616
617#ifndef __IONDRV__
618typedef struct OpaqueInterruptSetID* InterruptSetID;
619#else
620typedef class IONDRVInterruptSet * InterruptSetID;
621#endif /* __IONDRV__ */
622
623typedef long InterruptMemberNumber;
624struct InterruptSetMember {
625 InterruptSetID setID;
626 InterruptMemberNumber member;
627};
628typedef struct InterruptSetMember InterruptSetMember;
629enum {
630 kISTChipInterruptSource = 0,
631 kISTOutputDMAInterruptSource = 1,
632 kISTInputDMAInterruptSource = 2,
633 kISTPropertyMemberCount = 3
634};
635
636typedef InterruptSetMember ISTProperty[3];
637#define kISTPropertyName "driver-ist"
638
639typedef long InterruptReturnValue;
640enum {
641 kFirstMemberNumber = 1,
642 kIsrIsComplete = 0,
643 kIsrIsNotComplete = -1,
644 kMemberNumberParent = -2
645};
646
647typedef Boolean InterruptSourceState;
648enum {
649 kSourceWasEnabled = true,
650 kSourceWasDisabled = false
651};
652
653typedef InterruptMemberNumber (*InterruptHandler) (InterruptSetMember ISTmember, void *refCon, UInt32 theIntCount);
654typedef void (*InterruptEnabler) (InterruptSetMember ISTmember, void *refCon);
655typedef InterruptSourceState (*InterruptDisabler)(InterruptSetMember ISTmember, void *refCon);
656
657enum {
658 kReturnToParentWhenComplete = 0x00000001,
659 kReturnToParentWhenNotComplete = 0x00000002
660};
661
662typedef OptionBits InterruptSetOptions;
663
664
665OSStatus GetInterruptFunctions(
666 InterruptSetID setID,
667 InterruptMemberNumber member,
668 void ** refCon,
669 InterruptHandler * handlerFunction,
670 InterruptEnabler * enableFunction,
671 InterruptDisabler * disableFunction);
672
673OSStatus InstallInterruptFunctions(
674 InterruptSetID setID,
675 InterruptMemberNumber member,
676 void * refCon,
677 InterruptHandler handlerFunction,
678 InterruptEnabler enableFunction,
679 InterruptDisabler disableFunction);
680
681OSStatus CreateInterruptSet(
682 InterruptSetID parentSet,
683 InterruptMemberNumber parentMember,
684 InterruptMemberNumber setSize,
685 InterruptSetID * setID,
686 InterruptSetOptions options);
687
688OSStatus DeleteInterruptSet( InterruptSetID setID );
689
690
691#ifdef __cplusplus
692}
693#endif
694
695#endif /* __IONDRVLIBRARIES__ */
696
697

Archive Download this file

Revision: 1129