Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / sys / dkio.h @ 14

History | View | Annotate | Download (5 KB)

1
/*        $NetBSD: dkio.h,v 1.21 2014/12/29 18:41:20 mlelstv Exp $        */
2

    
3
/*
4
 * Copyright (c) 1987, 1988, 1993
5
 *        The Regents of the University of California.  All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 * 1. Redistributions of source code must retain the above copyright
11
 *    notice, this list of conditions and the following disclaimer.
12
 * 2. Redistributions in binary form must reproduce the above copyright
13
 *    notice, this list of conditions and the following disclaimer in the
14
 *    documentation and/or other materials provided with the distribution.
15
 * 3. Neither the name of the University nor the names of its contributors
16
 *    may be used to endorse or promote products derived from this software
17
 *    without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29
 * SUCH DAMAGE.
30
 */
31

    
32
#ifndef _SYS_DKIO_H_
33
#define _SYS_DKIO_H_
34

    
35
#include <sys/ioccom.h>
36
#include <prop/plistref.h>
37

    
38
/*
39
 * Disk-specific ioctls.
40
 */
41
                /* get and set disklabel; DIOCGPART used internally */
42
#define DIOCGDINFO        _IOR('d', 101, struct disklabel)/* get */
43
#define DIOCSDINFO        _IOW('d', 102, struct disklabel)/* set */
44
#define DIOCWDINFO        _IOW('d', 103, struct disklabel)/* set, update disk */
45

    
46
#ifdef _KERNEL
47
#define DIOCGDINFO32        (DIOCGDINFO - (sizeof(uint32_t) << IOCPARM_SHIFT))
48
#define DIOCGPART        _IOW('d', 104, struct partinfo)        /* get partition */
49
#endif
50

    
51
#if defined(__HAVE_OLD_DISKLABEL) && defined(_KERNEL)
52
#define ODIOCGDINFO        _IOR('d', 101, struct olddisklabel)/* get */
53
#define ODIOCSDINFO        _IOW('d', 102, struct olddisklabel)/* set */
54
#define ODIOCWDINFO        _IOW('d', 103, struct olddisklabel)/* set, update dk */
55
#endif
56

    
57
/* do format operation, read or write */
58
#define DIOCRFORMAT        _IOWR('d', 105, struct format_op)
59
#define DIOCWFORMAT        _IOWR('d', 106, struct format_op)
60

    
61
#define DIOCSSTEP        _IOW('d', 107, int)        /* set step rate */
62
#define DIOCSRETRIES        _IOW('d', 108, int)        /* set # of retries */
63
#define DIOCKLABEL        _IOW('d', 119, int)        /* keep/drop label on close? */
64
#define DIOCWLABEL        _IOW('d', 109, int)        /* write en/disable label */
65

    
66
#define DIOCSBAD        _IOW('d', 110, struct dkbad)        /* set kernel dkbad */
67
#define DIOCEJECT        _IOW('d', 112, int)        /* eject removable disk */
68
#define ODIOCEJECT        _IO('d', 112)                /* eject removable disk */
69
#define DIOCLOCK        _IOW('d', 113, int)        /* lock/unlock pack */
70

    
71
                /* get default label, clear label */
72
#define        DIOCGDEFLABEL        _IOR('d', 114, struct disklabel)
73
#define        DIOCCLRLABEL        _IO('d', 115)
74

    
75
#if defined(__HAVE_OLD_DISKLABEL) && defined(_KERNEL)
76
#define        ODIOCGDEFLABEL        _IOR('d', 114, struct olddisklabel)
77
#endif
78

    
79
                /* disk cache enable/disable */
80
#define        DIOCGCACHE        _IOR('d', 116, int)        /* get cache enables */
81
#define        DIOCSCACHE        _IOW('d', 117, int)        /* set cache enables */
82

    
83
#define        DKCACHE_READ        0x000001 /* read cache enabled */
84
#define        DKCACHE_WRITE        0x000002 /* write(back) cache enabled */
85
#define        DKCACHE_RCHANGE        0x000100 /* read enable is changeable */
86
#define        DKCACHE_WCHANGE        0x000200 /* write enable is changeable */
87
#define        DKCACHE_SAVE        0x010000 /* cache parameters are savable/save them */
88

    
89
                /* sync disk cache */
90
#define        DIOCCACHESYNC        _IOW('d', 118, int)        /* sync cache (force?) */
91

    
92
                /* bad sector list */
93
#define        DIOCBSLIST        _IOWR('d', 119, struct disk_badsecinfo)        /* get list */
94
#define        DIOCBSFLUSH        _IO('d', 120)                        /* flush list */
95

    
96
                /* wedges */
97
#define        DIOCAWEDGE        _IOWR('d', 121, struct dkwedge_info) /* add wedge */
98
#define        DIOCGWEDGEINFO        _IOR('d', 122, struct dkwedge_info)  /* get wedge inf */
99
#define        DIOCDWEDGE        _IOW('d', 123, struct dkwedge_info)  /* del wedge */
100
#define        DIOCLWEDGES        _IOWR('d', 124, struct dkwedge_list) /* list wedges */
101

    
102
                /* disk buffer queue strategy */
103
#define        DIOCGSTRATEGY        _IOR('d', 125, struct disk_strategy)
104
#define        DIOCSSTRATEGY        _IOW('d', 126, struct disk_strategy)
105

    
106
                /* get disk-info dictionary */
107
#define        DIOCGDISKINFO        _IOR('d', 127, struct plistref)
108

    
109

    
110
#define        DIOCTUR                _IOR('d', 128, int)        /* test unit ready */
111

    
112
/* 129 was DIOCGDISCARDPARAMS during 6.99 */
113
/* 130 was DIOCDISCARD during 6.99 */
114

    
115
                /* trigger wedge auto discover */
116
#define        DIOCMWEDGES        _IOR('d', 131, int)        /* make wedges */
117

    
118
                /* query disk geometry */
119
#define        DIOCGSECTORSIZE        _IOR('d', 133, u_int)        /* sector size in bytes */
120
#define        DIOCGMEDIASIZE        _IOR('d', 132, off_t)        /* media size in bytes */
121

    
122
#endif /* _SYS_DKIO_H_ */