~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/ipxe/src/include/ipxe/keys.h

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef _IPXE_KEYS_H
 
2
#define _IPXE_KEYS_H
 
3
 
 
4
/** @file
 
5
 *
 
6
 * Key definitions
 
7
 *
 
8
 */
 
9
 
 
10
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 
11
 
 
12
/*
 
13
 * Symbolic names for some standard ASCII characters
 
14
 *
 
15
 */
 
16
 
 
17
#define NUL             0x00
 
18
#define CTRL_A          0x01
 
19
#define CTRL_B          0x02
 
20
#define CTRL_C          0x03
 
21
#define CTRL_D          0x04
 
22
#define CTRL_E          0x05
 
23
#define CTRL_F          0x06
 
24
#define CTRL_G          0x07
 
25
#define CTRL_H          0x08
 
26
#define CTRL_I          0x09
 
27
#define CTRL_J          0x0a
 
28
#define CTRL_K          0x0b
 
29
#define CTRL_L          0x0c
 
30
#define CTRL_M          0x0d
 
31
#define CTRL_N          0x0e
 
32
#define CTRL_O          0x0f
 
33
#define CTRL_P          0x10
 
34
#define CTRL_Q          0x11
 
35
#define CTRL_R          0x12
 
36
#define CTRL_S          0x13
 
37
#define CTRL_T          0x14
 
38
#define CTRL_U          0x15
 
39
#define CTRL_V          0x16
 
40
#define CTRL_W          0x17
 
41
#define CTRL_X          0x18
 
42
#define CTRL_Y          0x19
 
43
#define CTRL_Z          0x1a
 
44
 
 
45
#define BACKSPACE       CTRL_H
 
46
#define TAB             CTRL_I
 
47
#define LF              CTRL_J
 
48
#define CR              CTRL_M
 
49
#define ESC             0x1b
 
50
 
 
51
/*
 
52
 * Special keys outside the normal ASCII range 
 
53
 *
 
54
 *
 
55
 * The names are chosen to match those used by curses.  The values are
 
56
 * chosen to facilitate easy conversion from a received ANSI escape
 
57
 * sequence to a KEY_XXX constant.
 
58
 */
 
59
 
 
60
#define KEY_ANSI( n, terminator ) ( 0x100 * ( (n) + 1 ) + (terminator) )
 
61
#define KEY_ANSI_N( key ) ( ( (key) / 0x100 ) - 1 )
 
62
#define KEY_ANSI_TERMINATOR( key ) ( (key) & 0xff )
 
63
 
 
64
#define KEY_MIN         0x101
 
65
#define KEY_UP          KEY_ANSI ( 0, 'A' )     /**< Up arrow */
 
66
#define KEY_DOWN        KEY_ANSI ( 0, 'B' )     /**< Down arrow */
 
67
#define KEY_RIGHT       KEY_ANSI ( 0, 'C' )     /**< Right arrow */
 
68
#define KEY_LEFT        KEY_ANSI ( 0, 'D' )     /**< Left arrow */
 
69
#define KEY_END         KEY_ANSI ( 0, 'F' )     /**< End */
 
70
#define KEY_HOME        KEY_ANSI ( 0, 'H' )     /**< Home */
 
71
#define KEY_IC          KEY_ANSI ( 2, '~' )     /**< Insert */
 
72
#define KEY_DC          KEY_ANSI ( 3, '~' )     /**< Delete */
 
73
#define KEY_PPAGE       KEY_ANSI ( 5, '~' )     /**< Page up */
 
74
#define KEY_NPAGE       KEY_ANSI ( 6, '~' )     /**< Page down */
 
75
#define KEY_F5          KEY_ANSI ( 15, '~' )    /**< F5 */
 
76
#define KEY_F6          KEY_ANSI ( 17, '~' )    /**< F6 */
 
77
#define KEY_F7          KEY_ANSI ( 18, '~' )    /**< F7 */
 
78
#define KEY_F8          KEY_ANSI ( 19, '~' )    /**< F8 (for PXE) */
 
79
#define KEY_F9          KEY_ANSI ( 20, '~' )    /**< F9 */
 
80
#define KEY_F10         KEY_ANSI ( 21, '~' )    /**< F10 */
 
81
#define KEY_F11         KEY_ANSI ( 23, '~' )    /**< F11 */
 
82
#define KEY_F12         KEY_ANSI ( 24, '~' )    /**< F12 */
 
83
 
 
84
/* Not in the [KEY_MIN,KEY_MAX] range; terminals seem to send these as
 
85
 * normal ASCII values.
 
86
 */
 
87
#define KEY_BACKSPACE   BACKSPACE
 
88
#define KEY_ENTER       LF
 
89
 
 
90
#endif /* _IPXE_KEYS_H */