Lines Matching refs:params
70 hp300_setboot(ib_params *params)
83 assert(params != NULL);
84 assert(params->fsfd != -1);
85 assert(params->filesystem != NULL);
86 assert(params->s1fd != -1);
87 assert(params->stage1 != NULL);
92 label = malloc(params->sectorsize);
98 if (params->flags & IB_APPEND) {
99 if (!S_ISREG(params->fsstat.st_mode)) {
102 params->filesystem);
105 boot_offset = roundup(params->fsstat.st_size, HP300_SECTSIZE);
111 if (pread(params->fsfd, label, params->sectorsize,
112 LABELSECTOR * params->sectorsize)
113 != (ssize_t)params->sectorsize) {
123 warnx("Invalid disklabel in %s", params->filesystem);
146 if (boot_size < (uint64_t)params->s1stat.st_size) {
149 (unsigned long long)params->s1stat.st_size);
154 bootstrap = mmap(NULL, params->s1stat.st_size, PROT_READ | PROT_WRITE,
155 MAP_PRIVATE, params->s1fd, 0);
157 warn("mmaping `%s'", params->stage1);
165 int32_t limit = (params->s1stat.st_size - 1) / HP300_SECTSIZE + 1;
177 if (params->flags & IB_NOWRITE) {
183 rv = pwrite(params->fsfd, bootstrap, 1024, 0);
186 warn("Writing `%s'", params->filesystem);
188 warnx("Writing `%s': short write", params->filesystem);
194 i = roundup(params->s1stat.st_size, secsize) - offset;
195 rv = pwrite(params->fsfd, bootstrap + offset, i, boot_offset + offset);
199 params->filesystem);
202 params->filesystem);
212 munmap(bootstrap, params->s1stat.st_size);