4210 |
const char *newKernelArgs, const char *newKernelInitrd, |
const char *newKernelArgs, const char *newKernelInitrd, |
4211 |
const char **extraInitrds, int extraInitrdCount, |
const char **extraInitrds, int extraInitrdCount, |
4212 |
const char *newMBKernel, const char *newMBKernelArgs, |
const char *newMBKernel, const char *newMBKernelArgs, |
4213 |
const char *newDevTreePath) |
const char *newDevTreePath, int newIndex) |
4214 |
{ |
{ |
4215 |
struct singleEntry *new; |
struct singleEntry *new, *entry, *prev = NULL; |
4216 |
struct singleLine *newLine = NULL, *tmplLine = NULL, *masterLine = NULL; |
struct singleLine *newLine = NULL, *tmplLine = NULL, *masterLine = NULL; |
4217 |
int needs; |
int needs; |
4218 |
char *chptr; |
char *chptr; |
4242 |
new = malloc(sizeof(*new)); |
new = malloc(sizeof(*new)); |
4243 |
new->skip = 0; |
new->skip = 0; |
4244 |
new->multiboot = 0; |
new->multiboot = 0; |
|
new->next = config->entries; |
|
4245 |
new->lines = NULL; |
new->lines = NULL; |
4246 |
config->entries = new; |
entry = config->entries; |
4247 |
|
for (unsigned int i = 0; i < newIndex; i++) { |
4248 |
|
if (!entry) |
4249 |
|
break; |
4250 |
|
prev = entry; |
4251 |
|
entry = entry->next; |
4252 |
|
} |
4253 |
|
new->next = entry; |
4254 |
|
|
4255 |
|
if (prev) |
4256 |
|
prev->next = new; |
4257 |
|
else |
4258 |
|
config->entries = new; |
4259 |
|
|
4260 |
/* copy/update from the template */ |
/* copy/update from the template */ |
4261 |
needs = NEED_KERNEL | NEED_TITLE; |
needs = NEED_KERNEL | NEED_TITLE; |
4748 |
char *newDevTreePath = NULL; |
char *newDevTreePath = NULL; |
4749 |
char *newMBKernel = NULL; |
char *newMBKernel = NULL; |
4750 |
char *newMBKernelArgs = NULL; |
char *newMBKernelArgs = NULL; |
4751 |
|
int newIndex = 0; |
4752 |
char *removeMBKernelArgs = NULL; |
char *removeMBKernelArgs = NULL; |
4753 |
char *removeMBKernel = NULL; |
char *removeMBKernel = NULL; |
4754 |
char *bootPrefix = NULL; |
char *bootPrefix = NULL; |
4855 |
{"set-default-index", 0, POPT_ARG_INT, &defaultIndex, 0, |
{"set-default-index", 0, POPT_ARG_INT, &defaultIndex, 0, |
4856 |
_("make the given entry index the default entry"), |
_("make the given entry index the default entry"), |
4857 |
_("entry-index")}, |
_("entry-index")}, |
4858 |
|
{"set-index", 0, POPT_ARG_INT, &newIndex, 0, |
4859 |
|
_("use the given index when creating a new entry"), |
4860 |
|
_("entry-index")}, |
4861 |
{"silo", 0, POPT_ARG_NONE, &configureSilo, 0, |
{"silo", 0, POPT_ARG_NONE, &configureSilo, 0, |
4862 |
_("configure silo bootloader")}, |
_("configure silo bootloader")}, |
4863 |
{"title", 0, POPT_ARG_STRING, &newKernelTitle, 0, |
{"title", 0, POPT_ARG_STRING, &newKernelTitle, 0, |
5273 |
if (addNewKernel(config, template, bootPrefix, newKernelPath, |
if (addNewKernel(config, template, bootPrefix, newKernelPath, |
5274 |
newKernelTitle, newKernelArgs, newKernelInitrd, |
newKernelTitle, newKernelArgs, newKernelInitrd, |
5275 |
(const char **)extraInitrds, extraInitrdCount, |
(const char **)extraInitrds, extraInitrdCount, |
5276 |
newMBKernel, newMBKernelArgs, newDevTreePath)) |
newMBKernel, newMBKernelArgs, newDevTreePath, |
5277 |
|
newIndex)) |
5278 |
return 1; |
return 1; |
5279 |
|
|
5280 |
if (numEntries(config) == 0) { |
if (numEntries(config) == 0) { |