-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.tsjl
156 lines (120 loc) · 5.25 KB
/
CHANGES.tsjl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
MAIN CHANGES FROM THE NETBSD TRUNK
2023-12-16
Kernel related changes
======================
- drm2/: correction of memory computation; XXX but this is
too simple: on some arches, there can be limit on addresses
where kernel pages can be put or dma be mapped; this is M.D.
and should be corrected more carefully. At least, now, the
numbers are too optimistic but not incredible.
- config(1): it accepts now also context neutral "userconf"
directives. These add the double quoted string given as
argument to the userconf_kconf[] array. This array is
interpreted by userconf(4) during startup (see below).
Typically, MI userconf instructions should go in sys/conf/std
like these ones:
#
# Userconf MI aliases.
#
userconf "alias azerty qaQAwzWZaqAQ;m:MzwZWm,M?,;<..:>/"
# start to define an executable macro "fr"
# - printing a message
userconf "alias -c fr print changing to pseudo-fr kbd mapping"
# - mapping from def of azerty (-a azerty) and mapping * and -
userconf "alias -c fr kmap -a azerty `*~-"
# - printing a hint: * and - are mapped at the upper left key
userconf "alias -c fr p * and - are mapped to upper left ^2"
# Here, another macro: the drmkms alias is defined in MD code
userconf "alias -c nodrmkms disable -a drmkms"
and then in the kernel config, MD directives can be added for
example to define drmkms (an alias; each instruction creates
or adds to the definition):
# DRMKMS drivers
i915drmkms* at pci? dev ? function ?
intelfb* at intelfbbus?
userconf "alias drmkms i915drmkms*"
radeon* at pci? dev ? function ?
radeondrmkmsfb* at radeonfbbus?
userconf "alias drmkms radeon*"
#amdgpu* at pci? dev ? function ?
#amdgpufb* at amdgpufbbus?
nouveau* at pci? dev ? function ?
nouveaufb* at nouveaufbbus?
userconf "alias drmkms nouveau*"
- cons(9): two new routines: cnmapreset() and cnmap() allow
a "late" mapping of chars in startup console (works only with
cnget*()), allowing a kind of keyboard mapping for use during
this step;
- userconf(4): in order for interaction and for the config(1)
generated userconf_kconf[] array of instructions to be more
useful, a lot of things have been added to userconf(4):
o At init time, userconf interprets instructions
(cmdlines) in userconf_kconf[] (generated by
config(1)) before processing bootinfo directives and,
perhaps, entering interactive session if the "-c" flag
was passed to the kernel;
o aliases: one can create aliases, including
executable ones (macros). Userconf does its own
alloc/free stuff for this;
=> userconf_parse() thus handle taking definition of
aliases and recursing for macros;
o patterns: one can select devices using patterns.
This works for change, disable, enable, find and list;
o new built-ins:
* aliases: create or add definition to an
alias (that can be executable); allocated;
* kmap: maps characters on the console
(calling cons(9) added routines) allowing a
kind of keyboard mapping for not US ASCII
keyboards;
* print: echos tokens including dereferencing
of aliases;
* unalias: delete an alias; freed;
* vis: visualize (show) the definition of an
alias (uninterpreted)---show and 'S' were not
chosen to keep 'S' for "set" in the future; see
FUTURE DIRECTIONS;
* debug0: display config(1) added instructions
parsed at startup time;
* debug1: display debugging information about
userconf memory and structures allocations;
* debug2: display debugging information about
userconf defined aliases;
o Ergonomy: in order to limit the number of characters
to be able to give:
* input is case insensitive;
* built-ins can be given with a single letter
key (in all cases less one, this is the
initial); a macro is at least two chars,
starting by a letter. Single letters are
reserved for built-ins;
* no special character is needed for pattern
or alias: a flag has to be given with a hyphen
and a letter to change the interpretation of
the next token (this was proposed by RVP).
o FUTURE DIRECTIONS: I have reserved 'S' for set: a
lot of things presently in MD boot could be put in
MI userconf.
o RATIONALE: in order to be able to enable/disable
sets of devices or to give an easy command to type
for keyboard (console at startup) without having to
write MD code, the simplest is to be able to script
it with aliases and let userconf interpret.
- (partly DRM*) userconf can take also as a selector a pattern
between slashes, for a fixed substring that can be anchored;
- (DRM*) Specifying in sys/uvm/pmap_pvt.* that one function is
only used by DRMKMS (drm2/).
- Updating sys/dev/videomode/ to use the reference for
monitors: VESA. This also corrects Mac modes (not specified
in VESA DMT but that X11 got wrong).
Userland related changes
========================
- Add the X11 DRMKMS man pages generated from rst (see
netbsd-xsrc/drm-rst);
- New version of inetd(8) addressing security issues (ignoring
syntax errors that may lead to serve what was not intended to
be served): adds an unprivileged syntax checker mode; extend
the syntax; add a resilient mode that permits whether toi
continue servicing a previous valid config (when trying to
reload i.e. change it) or to fallback to a fixed name fallback
one;