Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / sys / wdog.h @ 13

History | View | Annotate | Download (3.77 KB)

1 13 up20180614
/*        $NetBSD: wdog.h,v 1.3 2005/12/11 12:25:21 christos Exp $        */
2
3
/*-
4
 * Copyright (c) 2000 Zembu Labs, Inc.
5
 * All rights reserved.
6
 *
7
 * Author: Jason R. Thorpe <thorpej@zembu.com>
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 * 1. Redistributions of source code must retain the above copyright
13
 *    notice, this list of conditions and the following disclaimer.
14
 * 2. Redistributions in binary form must reproduce the above copyright
15
 *    notice, this list of conditions and the following disclaimer in the
16
 *    documentation and/or other materials provided with the distribution.
17
 * 3. All advertising materials mentioning features or use of this software
18
 *    must display the following acknowledgement:
19
 *        This product includes software developed by Zembu Labs, Inc.
20
 * 4. Neither the name of Zembu Labs nor the names of its employees may
21
 *    be used to endorse or promote products derived from this software
22
 *    without specific prior written permission.
23
 *
24
 * THIS SOFTWARE IS PROVIDED BY ZEMBU LABS, INC. ``AS IS'' AND ANY EXPRESS
25
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WAR-
26
 * RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
27
 * CLAIMED.  IN NO EVENT SHALL ZEMBU LABS BE LIABLE FOR ANY DIRECT, INDIRECT,
28
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
29
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
 */
35
36
#ifndef _SYS_WDOG_H_
37
#define        _SYS_WDOG_H_
38
39
#include <sys/ioccom.h>
40
41
/*
42
 * Definitions for manipulating watchdog timers.
43
 */
44
45
/* This must match struct device's "dv_xname" size. */
46
#define        WDOG_NAMESIZE        16
47
48
struct wdog_mode {
49
        char wm_name[WDOG_NAMESIZE];
50
        int wm_mode;                /* timer mode */
51
        u_int wm_period;        /* timer period (seconds) */
52
};
53
54
/*
55
 * GMODE -- get mode of watchdog specified by wm_name.
56
 *
57
 * SMODE -- set mode of watchdog specified by wm_mame.  If
58
 *          wm_mode is not DISARMED, the watchdog is armed,
59
 *          if another watchdog is not already running.
60
 */
61
#define        WDOGIOC_GMODE                _IOWR('w', 0, struct wdog_mode)
62
#define        WDOGIOC_SMODE                 _IOW('w', 1, struct wdog_mode)
63
64
/*
65
 * WHICH -- returns the mode information of the currently armed
66
 *          watchdog timer.
67
 */
68
#define        WDOGIOC_WHICH                 _IOR('w', 2, struct wdog_mode)
69
70
/*
71
 * TICKLE -- tickle the currently armed watchdog timer if the
72
 *           mode of that timer is UTICKLE.
73
 */
74
#define        WDOGIOC_TICKLE                  _IO('w', 3)
75
76
/*
77
 * GTICKLER -- get the PID of the last process to tickle the timer.
78
 */
79
#define        WDOGIOC_GTICKLER         _IOR('w', 4, pid_t)
80
81
/*
82
 * GWDOGS -- fill in the character array with the names of all of
83
 *           the watchdog timers present on the system.  The names
84
 *           will be padded out to WDOG_NAMESIZE.  Thus, the argument
85
 *           should be (count * WDOG_NAMESIZE) bytes long.
86
 */
87
struct wdog_conf {
88
        char *wc_names;
89
        int wc_count;
90
};
91
#define        WDOGIOC_GWDOGS                _IOWR('w', 5, struct wdog_conf)
92
93
#define        WDOG_MODE_DISARMED        0        /* watchdog is disarmed */
94
#define        WDOG_MODE_KTICKLE        1        /* kernel tickles watchdog */
95
#define        WDOG_MODE_UTICKLE        2        /* user tickles watchdog */
96
#define        WDOG_MODE_ETICKLE        3        /* external program tickles watchdog */
97
98
#define        WDOG_MODE_MASK                0x03
99
100
#define        WDOG_FEATURE_ALARM        0x10        /* enable audible alarm on expire */
101
102
#define        WDOG_FEATURE_MASK        0x10
103
104
#define        WDOG_PERIOD_DEFAULT        ((u_int)-1)
105
106
/* Period is expressed in seconds. */
107
#define        WDOG_PERIOD_TO_TICKS(period)        ((period) * hz)
108
109
#endif /* _SYS_WDOG_H_ */