Lines Matching refs:params

94 #define OPTION(params, type, opt) (*(type *)((char *)(params) + (opt)->offset))
102 ib_params *params;
110 params = &installboot_params;
111 memset(params, 0, sizeof(*params));
112 params->fsfd = -1;
113 params->s1fd = -1;
115 getmachine(params, p, "$MACHINE");
130 params->s1start = (uint32_t)lval;
131 params->flags |= IB_STAGE1START;
133 params->s2start = (uint32_t)lval;
134 params->flags |= IB_STAGE2START;
139 params->flags |= IB_CLEAR;
143 params->flags |= IB_EDIT;
147 params->flags |= IB_FORCE;
151 getmachine(params, optarg, "-m");
155 params->flags |= IB_NOWRITE;
159 parseoptions(params, optarg);
163 getfstype(params, optarg, "-t");
167 params->flags |= IB_VERBOSE;
180 if (params->flags & IB_CLEAR && params->flags & IB_EDIT)
182 if (argc < 1 || argc + 2 * !!(params->flags & (IB_CLEAR | IB_EDIT)) > 3)
186 if (params->machine == NULL) {
189 getmachine(params, utsname.machine, "uname()");
193 unsupported_flags = params->flags & ~params->machine->valid_flags;
202 options[ndx].name, params->machine->name);
207 params->machine->name);
210 params->machine->name);
218 if (params->flags & IB_STAGE1START && params->flags & IB_APPEND) {
222 if (params->flags & IB_CLEAR &&
223 params->flags & (IB_STAGE1START | IB_STAGE2START | IB_APPEND)) {
229 params->stage2 = argv[2];
232 params->filesystem = argv[0];
233 if (params->flags & IB_NOWRITE) {
241 params->sectorsize = DFL_SECSIZE;
242 if ((params->fsfd = open(params->filesystem, mode, 0600)) == -1)
244 params->filesystem, op);
245 if (fstat(params->fsfd, &params->fsstat) == -1)
246 err(1, "Examining file system `%s'", params->filesystem);
247 if (params->fstype != NULL) {
248 if (! params->fstype->match(params))
250 params->filesystem, params->fstype->name);
252 if (params->stage2 != NULL) {
253 params->fstype = &fstypes[0];
254 while (params->fstype->name != NULL &&
255 !params->fstype->match(params))
256 params->fstype++;
257 if (params->fstype->name == NULL)
259 params->filesystem);
264 if ((params->s1fd = open(argv[1], O_RDONLY, 0600)) == -1)
266 if (fstat(params->s1fd, &params->s1stat) == -1)
268 if (!S_ISREG(params->s1stat.st_mode))
270 params->stage1 = argv[1];
272 assert(params->machine != NULL);
274 if (params->flags & IB_VERBOSE) {
275 printf("File system: %s\n", params->filesystem);
276 if (params->fstype)
279 params->fstype->name, params->fstype->blocksize,
280 params->fstype->needswap);
281 if (!(params->flags & IB_EDIT))
283 (params->flags & IB_CLEAR) ? "(to be cleared)"
284 : params->stage1 ? params->stage1 : "(none)" );
285 if (params->stage2 != NULL)
286 printf("Secondary bootstrap: %s\n", params->stage2);
289 if (params->flags & IB_EDIT) {
291 rv = params->machine->editboot(params);
292 } else if (params->flags & IB_CLEAR) {
294 rv = params->machine->clearboot(params);
300 rv = params->machine->setboot(params);
305 if (S_ISREG(params->fsstat.st_mode)) {
306 if (fsync(params->fsfd) == -1)
308 params->filesystem);
313 if (close(params->fsfd) == -1)
314 err(1, "Closing file system `%s'", params->filesystem);
316 if (close(params->s1fd) == -1)
318 params->stage1);
325 parseoptions(ib_params *params, const char *option)
332 assert(params != NULL);
350 params->flags |= opt->flag;
372 OPTION(params, char *, opt) = cp;
380 OPTION(params, int, opt) = (int)val;
425 no_setboot(ib_params *params)
428 assert(params != NULL);
431 params->machine->name);
436 no_clearboot(ib_params *params)
439 assert(params != NULL);
442 params->machine->name);
447 no_editboot(ib_params *params)
450 assert(params != NULL);
453 params->machine->name);