Lines 222-238
function core.kernelList()
Link Here
|
222 |
return core.cached_kernels |
222 |
return core.cached_kernels |
223 |
end |
223 |
end |
224 |
|
224 |
|
225 |
local k = loader.getenv("kernel") |
225 |
local default_kernel = loader.getenv("kernel") |
226 |
local v = loader.getenv("kernels") |
226 |
local v = loader.getenv("kernels") |
227 |
local autodetect = loader.getenv("kernels_autodetect") or "" |
227 |
local autodetect = loader.getenv("kernels_autodetect") or "" |
228 |
|
228 |
|
229 |
local kernels = {} |
229 |
local kernels = {} |
230 |
local unique = {} |
230 |
local unique = {} |
231 |
local i = 0 |
231 |
local i = 0 |
232 |
if k ~= nil then |
232 |
|
|
|
233 |
if default_kernel then |
233 |
i = i + 1 |
234 |
i = i + 1 |
234 |
kernels[i] = k |
235 |
kernels[i] = default_kernel |
235 |
unique[k] = true |
236 |
unique[default_kernel] = true |
236 |
end |
237 |
end |
237 |
|
238 |
|
238 |
if v ~= nil then |
239 |
if v ~= nil then |
Lines 260-265
function core.kernelList()
Link Here
|
260 |
return core.cached_kernels |
261 |
return core.cached_kernels |
261 |
end |
262 |
end |
262 |
|
263 |
|
|
|
264 |
local present = {} |
265 |
|
263 |
-- Automatically detect other bootable kernel directories using a |
266 |
-- Automatically detect other bootable kernel directories using a |
264 |
-- heuristic. Any directory in /boot that contains an ordinary file |
267 |
-- heuristic. Any directory in /boot that contains an ordinary file |
265 |
-- named "kernel" is considered eligible. |
268 |
-- named "kernel" is considered eligible. |
Lines 288-295
function core.kernelList()
Link Here
|
288 |
unique[file] = true |
291 |
unique[file] = true |
289 |
end |
292 |
end |
290 |
|
293 |
|
|
|
294 |
present[file] = true |
295 |
|
291 |
::continue:: |
296 |
::continue:: |
292 |
end |
297 |
end |
|
|
298 |
|
299 |
-- If we found more than one kernel, prune the "kernel" specified kernel |
300 |
-- off of the list if it wasn't found during traversal. If we didn't |
301 |
-- actually find any kernels, we just assume that they know what they're |
302 |
-- doing and leave it alone. |
303 |
if default_kernel and not present[default_kernel] and #kernels > 1 then |
304 |
for i = 1, #kernels do |
305 |
if i == #kernels then |
306 |
kernels[i] = nil |
307 |
else |
308 |
kernels[i] = kernels[i + 1] |
309 |
end |
310 |
end |
311 |
end |
312 |
|
293 |
core.cached_kernels = kernels |
313 |
core.cached_kernels = kernels |
294 |
return core.cached_kernels |
314 |
return core.cached_kernels |
295 |
end |
315 |
end |