RTEMS 6.1-rc6
Loading...
Searching...
No Matches
idtr.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
24/*
25 * COPYRIGHT (C) 1998 Eric Valette (valette@crf.canon.fr)
26 * Canon Centre Recherche France.
27 *
28 * Redistribution and use in source and binary forms, with or without
29 * modification, are permitted provided that the following conditions
30 * are met:
31 * 1. Redistributions of source code must retain the above copyright
32 * notice, this list of conditions and the following disclaimer.
33 * 2. Redistributions in binary form must reproduce the above copyright
34 * notice, this list of conditions and the following disclaimer in the
35 * documentation and/or other materials provided with the distribution.
36 *
37 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
38 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
40 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
41 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
42 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
43 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
44 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
45 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
47 * POSSIBILITY OF SUCH DAMAGE.
48 */
49
50#ifndef _RTEMS_SCORE_IDTR_H
51#define _RTEMS_SCORE_IDTR_H
52
53/*
54 * See page 14.9 Figure 14-2.
55 *
56 */
57typedef struct
58{
59 unsigned int low_offsets_bits:16;
60 unsigned int segment_selector:16;
61 unsigned int fixed_value_bits:8;
62 unsigned int gate_type:5;
63 unsigned int privilege:2;
64 unsigned int present:1;
65 unsigned int high_offsets_bits:16;
67
68/*
69 * C callable function enabling to create a interrupt_gate_descriptor
70 */
71extern void create_interrupt_gate_descriptor (interrupt_gate_descriptor*, rtems_raw_irq_hdl);
72
73/*
74 * C callable function enabling to get easily usable info from
75 * the actual value of IDT register.
76 */
77extern void i386_get_info_from_IDTR (interrupt_gate_descriptor** table,
78 unsigned* limit);
79
80/*
81 * C callable function enabling to change the value of IDT register. Must be called
82 * with interrupts masked at processor level!!!.
83 */
84extern void i386_set_IDTR (interrupt_gate_descriptor* table,
85 unsigned limit);
86
87#endif
Definition: idtr.h:58