Lines Matching refs:params
103 #define OPTION(params, type, opt) (*(type *)((char *)(params) + (opt)->offset))
119 ib_params *params;
132 params = &installboot_params;
133 memset(params, 0, sizeof(*params));
134 params->fsfd = -1;
135 params->s1fd = -1;
137 getmachine(params, p, "$MACHINE");
138 getubootpaths(params, DEFAULT_UBOOT_PKG_PATH);
140 getubootpaths(params, p);
156 params->s1start = (uint32_t)lval;
157 params->flags |= IB_STAGE1START;
159 params->s2start = (uint32_t)lval;
160 params->flags |= IB_STAGE2START;
165 params->flags |= IB_CLEAR;
169 params->flags |= IB_EDIT;
173 params->flags |= IB_FORCE;
177 getmachine(params, optarg, "-m");
181 params->flags |= IB_NOWRITE;
185 parseoptions(params, optarg);
189 getfstype(params, optarg, "-t");
193 getubootpaths(params, optarg);
197 params->flags |= IB_VERBOSE;
210 if (params->flags & IB_CLEAR && params->flags & IB_EDIT)
212 if (argc < 1 || argc + 2 * !!(params->flags & (IB_CLEAR | IB_EDIT)) > 3)
216 if (params->machine == NULL) {
219 getmachine(params, utsname.machine, "uname()");
223 unsupported_flags = params->flags & ~params->machine->valid_flags;
232 options[ndx].name, params->machine->name);
237 params->machine->name);
240 params->machine->name);
248 if (params->flags & IB_STAGE1START && params->flags & IB_APPEND) {
252 if (params->flags & IB_CLEAR &&
253 params->flags & (IB_STAGE1START | IB_STAGE2START | IB_APPEND)) {
259 params->stage2 = argv[2];
269 params->filesystem = special;
271 params->filesystem = argv[0];
274 if (params->flags & IB_NOWRITE) {
282 params->sectorsize = DFL_SECSIZE;
283 if ((params->fsfd = open(params->filesystem, mode, 0600)) == -1)
285 params->filesystem, op);
286 if (fstat(params->fsfd, ¶ms->fsstat) == -1)
287 err(1, "Examining file system `%s'", params->filesystem);
288 if (params->fstype != NULL) {
289 if (! params->fstype->match(params))
291 params->filesystem, params->fstype->name);
293 if (params->stage2 != NULL) {
294 params->fstype = &fstypes[0];
295 while (params->fstype->name != NULL &&
296 !params->fstype->match(params))
297 params->fstype++;
298 if (params->fstype->name == NULL)
300 params->filesystem);
304 assert(params->machine != NULL);
307 if ((params->s1fd = open(argv[1], O_RDONLY, 0600)) == -1)
309 if (fstat(params->s1fd, ¶ms->s1stat) == -1)
311 if (!S_ISREG(params->s1stat.st_mode)) {
317 if (params->machine->mach_flags & MF_UBOOT) {
318 if (!S_ISDIR(params->s1stat.st_mode)) {
322 (void) close(params->s1fd);
323 params->s1fd = -1;
328 params->stage1 = argv[1];
331 if (params->flags & IB_VERBOSE) {
332 printf("File system: %s\n", params->filesystem);
333 if (params->fstype)
336 params->fstype->name, params->fstype->blocksize,
337 params->fstype->needswap);
338 if (!(params->flags & IB_EDIT))
340 (params->flags & IB_CLEAR) ? "(to be cleared)"
341 : params->stage1 ? params->stage1 : "(none)",
342 S_ISDIR(params->s1stat.st_mode) ? " (directory)"
344 if (params->stage2 != NULL)
345 printf("Secondary bootstrap: %s\n", params->stage2);
348 if (params->flags & IB_EDIT) {
350 rv = params->machine->editboot(params);
351 } else if (params->flags & IB_CLEAR) {
353 rv = params->machine->clearboot(params);
362 if (!(params->machine->mach_flags & MF_UBOOT)) {
368 rv = params->machine->setboot(params);
373 if (S_ISREG(params->fsstat.st_mode)) {
374 if (fsync(params->fsfd) == -1)
376 params->filesystem);
381 if (close(params->fsfd) == -1)
382 err(1, "Closing file system `%s'", params->filesystem);
383 if (params->s1fd != -1)
384 if (close(params->s1fd) == -1)
386 params->stage1);
393 parseoptions(ib_params *params, const char *option)
400 assert(params != NULL);
418 params->flags |= opt->flag;
440 OPTION(params, char *, opt) = cp;
448 OPTION(params, int, opt) = (int)val;
493 no_setboot(ib_params *params)
496 assert(params != NULL);
499 params->machine->name);
504 no_clearboot(ib_params *params)
507 assert(params != NULL);
510 params->machine->name);
515 no_editboot(ib_params *params)
518 assert(params != NULL);
521 params->machine->name);