|
|
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: #include <IOKit/IOLib.h>
23:
24: #ifdef __cplusplus
25:
26: #define logPrintf(x) \
27: do { \
28: kprintf x; \
29: } while (0)
30:
31: #define verPrintf(x) logPrintf(x)
32:
33: // Assumes 'bool res = true' in current scope
34: #define TEST_ASSERT(t, l, c) \
35: do { \
36: if ( !(c) ) { \
37: verPrintf(("TEST (%c) test %s failed\n", t, l)); \
38: res = false; \
39: } \
40: } while(0)
41:
42: #define logSpace() do { } while(0)
43: #define checkPointSpace() ((void *) 0)
44: #define checkSpace(l, ckp, d) ((int) 1)
45:
46: // In TestContainers.cc
47: extern const int numStrCache;
48: extern const char *strCache[];
49:
50: extern void testString();
51: extern void testSymbol();
52: extern void testData();
53:
54: // In TestCollections.cc
55: extern void testArray();
56: extern void testSet();
57: extern void testDictionary();
58: extern void testIterator();
59:
60: // In TestDevice.cc
61: extern void testWorkLoop();
62:
63: #include <libkern/c++/OSObject.h>
64:
65: class IOWorkLoop;
66: class IOCommandQueue;
67: class IOInterruptEventSource;
68:
69: class TestDevice;
70: typedef void (*TestDeviceAction)(TestDevice *, int, void *);
71:
72: class TestDevice : public OSObject
73: {
74: OSDeclareDefaultStructors(TestDevice)
75:
76: IOWorkLoop *workLoop;
77: int intCount;
78: IOCommandQueue *commQ;
79:
80: public:
81: IOInterruptEventSource *intES;
82:
83: virtual bool init();
84: virtual void free();
85:
86: void rawCommandOccurred
87: (void *field0, void *field1, void *field2, void *field3);
88: kern_return_t enqueueCommand(bool sleep,
89: TestDeviceAction act, int tag, void *dataP);
90:
91: void interruptAction(IOInterruptEventSource *event, int count);
92:
93: void producer1Action(int tag);
94: void producer2Action(int tag, void *inCount);
95:
96: void alarm();
97: };
98:
99: #endif /* __cplusplus */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.