Chameleon

Chameleon Svn Source Tree

Root/tags/2.0/i386/include/IOKit/IOCommand.h

Source at commit 1808 created 12 years 4 months ago.
By blackosx, Revise layout of package installer 'Welcome' file so it looks cleaner. Change the copyright notice to begin from 2009 as seen in the Chameleon 2.0 r431 installer. Should this date be set earlier?
1/*
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28
29/*
30 *
31 *Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
32 *
33 *HISTORY
34 *
35 *2001-01-18 gvdlMade the primary queue pointer public, to be used when
36 *Ownership is clear.
37 *11/13/2000 CJSCreated IOCommand class and implementation
38 *
39 */
40
41/*!
42 * @header IOCommand
43 * @abstract
44 * This header contains the IOCommand class definition.
45 */
46
47#ifndef _IOKIT_IO_COMMAND_H_
48#define _IOKIT_IO_COMMAND_H_
49
50/*
51 * Kernel
52 */
53
54#if defined(KERNEL) && defined(__cplusplus)
55
56#include <kern/queue.h>
57#include <libkern/c++/OSObject.h>
58
59/*!
60 * @class IOCommand
61 * @abstract
62 * This class is an abstract class which represents an I/O command.
63 * @discussion
64 * This class is an abstract class which represents an I/O command passed
65 * from a device driver to a controller. All controller commands (e.g. IOATACommand)
66 * should inherit from this class.
67 */
68
69class IOCommand : public OSObject
70{
71 OSDeclareDefaultStructors(IOCommand)
72
73public:
74 virtual bool init(void);
75
76/*! @var fCommandChain
77 This variable is used by the current 'owner' to queue the command. During the life cycle of a command it moves through a series of queues. This is the queue pointer for it. Only valid while 'ownership' is clear. For instance a IOCommandPool uses this pointer to maintain its list of free commands. May be manipulated using the kern/queue.h macros */
78 queue_chain_t fCommandChain;/* used to queue commands */
79};
80
81#endif /* defined(KERNEL) && defined(__cplusplus) */
82
83#endif/* _IOKIT_IO_COMMAND_H_ */
84

Archive Download this file

Revision: 1808