Chameleon

Chameleon Svn Source Tree

Root/tags/2.0/i386/include/sys/disk.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) 1998-2006 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#ifndef_SYS_DISK_H_
30#define_SYS_DISK_H_
31
32#include <stdint.h>
33//#include <sys/ioctl.h>
34
35/*
36 * Definitions
37 *
38 * ioctl description
39 * ------------------------------------- ---------------------------------------
40 * DKIOCEJECT eject media
41 * DKIOCSYNCHRONIZECACHE flush media
42 *
43 * DKIOCFORMAT format media
44 * DKIOCGETFORMATCAPACITIES get media's formattable capacities
45 *
46 * DKIOCGETBLOCKSIZE get media's block size
47 * DKIOCGETBLOCKCOUNT get media's block count
48 * DKIOCGETFIRMWAREPATH get media's firmware path
49 *
50 * DKIOCISFORMATTED is media formatted?
51 * DKIOCISWRITABLE is media writable?
52 *
53 * DKIOCREQUESTIDLE idle media
54 * DKIOCDISCARD delete unused data
55 *
56 * DKIOCGETMAXBLOCKCOUNTREAD get maximum block count for reads
57 * DKIOCGETMAXBLOCKCOUNTWRITE get maximum block count for writes
58 * DKIOCGETMAXBYTECOUNTREAD get maximum byte count for reads
59 * DKIOCGETMAXBYTECOUNTWRITE get maximum byte count for writes
60 *
61 * DKIOCGETMAXSEGMENTCOUNTREAD get maximum segment count for reads
62 * DKIOCGETMAXSEGMENTCOUNTWRITE get maximum segment count for writes
63 * DKIOCGETMAXSEGMENTBYTECOUNTREAD get maximum segment byte count for reads
64 * DKIOCGETMAXSEGMENTBYTECOUNTWRITE get maximum segment byte count for writes
65 *
66 * DKIOCGETMINSEGMENTALIGNMENTBYTECOUNT get minimum segment alignment in bytes
67 * DKIOCGETMAXSEGMENTADDRESSABLEBITCOUNT get maximum segment width in bits
68 *
69 * DKIOCGETPHYSICALBLOCKSIZE get device's block size
70 * DKIOCGETCOMMANDPOOLSIZE get device's queue depth
71 */
72
73typedef struct
74{
75 uint64_t offset;
76 uint64_t length;
77
78 uint8_t reserved0128[16]; /* reserved, clear to zero */
79} dk_discard_t;
80
81typedef struct
82{
83 char path[128];
84} dk_firmware_path_t;
85
86typedef struct
87{
88 uint64_t blockCount;
89 uint32_t blockSize;
90
91 uint8_t reserved0096[4]; /* reserved, clear to zero */
92} dk_format_capacity_t;
93
94typedef struct
95{
96 dk_format_capacity_t * capacities;
97 uint32_t capacitiesCount; /* use zero to probe count */
98
99#ifdef __LP64__
100 uint8_t reserved0096[4]; /* reserved, clear to zero */
101#else /* !__LP64__ */
102 uint8_t reserved0064[8]; /* reserved, clear to zero */
103#endif /* !__LP64__ */
104} dk_format_capacities_t;
105
106#define DKIOCEJECT _IO('d', 21)
107#define DKIOCSYNCHRONIZECACHE _IO('d', 22)
108
109#define DKIOCFORMAT _IOW('d', 26, dk_format_capacity_t)
110#define DKIOCGETFORMATCAPACITIES _IOWR('d', 26, dk_format_capacities_t)
111
112#define DKIOCGETBLOCKSIZE _IOR('d', 24, uint32_t)
113#define DKIOCGETBLOCKCOUNT _IOR('d', 25, uint64_t)
114#define DKIOCGETFIRMWAREPATH _IOR('d', 28, dk_firmware_path_t)
115
116#define DKIOCISFORMATTED _IOR('d', 23, uint32_t)
117#define DKIOCISWRITABLE _IOR('d', 29, uint32_t)
118
119#define DKIOCREQUESTIDLE _IO('d', 30)
120#define DKIOCDISCARD _IOW('d', 31, dk_discard_t)
121
122#define DKIOCGETMAXBLOCKCOUNTREAD _IOR('d', 64, uint64_t)
123#define DKIOCGETMAXBLOCKCOUNTWRITE _IOR('d', 65, uint64_t)
124#define DKIOCGETMAXBYTECOUNTREAD _IOR('d', 70, uint64_t)
125#define DKIOCGETMAXBYTECOUNTWRITE _IOR('d', 71, uint64_t)
126
127#define DKIOCGETMAXSEGMENTCOUNTREAD _IOR('d', 66, uint64_t)
128#define DKIOCGETMAXSEGMENTCOUNTWRITE _IOR('d', 67, uint64_t)
129#define DKIOCGETMAXSEGMENTBYTECOUNTREAD _IOR('d', 68, uint64_t)
130#define DKIOCGETMAXSEGMENTBYTECOUNTWRITE _IOR('d', 69, uint64_t)
131
132#define DKIOCGETMINSEGMENTALIGNMENTBYTECOUNT _IOR('d', 74, uint64_t)
133#define DKIOCGETMAXSEGMENTADDRESSABLEBITCOUNT _IOR('d', 75, uint64_t)
134
135#define DKIOCGETPHYSICALBLOCKSIZE _IOR('d', 77, uint32_t)
136#define DKIOCGETCOMMANDPOOLSIZE _IOR('d', 78, uint32_t)
137
138
139#endif/* _SYS_DISK_H_ */
140

Archive Download this file

Revision: 1808