Project

General

Profile

Statistics
| Revision:

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

History | View | Annotate | Download (2.18 KB)

1
/*        $NetBSD: intrio.h,v 1.1 2015/08/17 06:16:03 knakahara Exp $        */
2

    
3
/*
4
 * Copyright (c) 2015 Internet Initiative Japan Inc.
5
 * 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
 *
16
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
17
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
 * POSSIBILITY OF SUCH DAMAGE.
27
 */
28

    
29
#ifndef _SYS_INTRIO_H_
30
#define _SYS_INTRIO_H_
31

    
32
#include <sys/types.h>
33
#include <sys/intr.h>
34
#include <sys/sched.h>
35

    
36
#define INTRIO_LIST_VERSION 1
37

    
38
struct intrio_set {
39
        char intrid[INTRIDBUF];
40
        cpuset_t *cpuset;
41
        size_t cpuset_size;
42
};
43

    
44
struct intrio_list_line_cpu {
45
        bool illc_assigned;
46
        uint64_t illc_count;
47
};
48

    
49
struct intrio_list_line {
50
        char ill_intrid[INTRIDBUF];
51
        char ill_xname[INTRDEVNAMEBUF];
52
        struct intrio_list_line_cpu ill_cpu[1]; /* Array size is overwritten to ncpu. */
53
};
54

    
55
struct intrio_list {
56
        int il_version; /* Version number of this struct. */
57
        int il_ncpus;
58
        int il_nintrs;
59
        size_t il_bufsize;
60

    
61
        size_t il_linesize;
62
        off_t il_lineoffset;
63
/*
64
 * struct intrio_list_line il_lines[interrupt_num] must be followed here.
65
 */
66
};
67

    
68
#endif /* !_SYS_INTRIO_H_ */