Lines Matching refs:rp

128 	struct bop_regs rp = {0};
131 rp.eax.word.ax = 0x4100;
132 rp.ebx.word.bx = 0x55AA;
133 rp.edx.word.dx = drivenum;
136 BOP_DOINT(bootops, 0x13, &rp);
138 if (((rp.eflags & PS_C) != 0) || (rp.ebx.word.bx != 0xAA55)) {
140 "failed %d bx = %x\n", rp.eflags, rp.ebx.word.bx));
144 if ((rp.ecx.word.cx & 0x7) == 0) {
146 "not supported cx = %x\n", rp.ecx.word.cx));
156 struct bop_regs rp = {0};
175 rp.eax.word.ax = 0x4800;
176 rp.edx.byte.dl = drivenum;
178 rp.esi.word.si = (uint16_t)FP_OFF((uint_t)(uintptr_t)bufp);
179 rp.ds = FP_SEG((uint_t)(uintptr_t)bufp);
181 BOP_DOINT(bootops, 0x13, &rp);
183 if ((rp.eflags & PS_C) != 0) {
185 rp.eflags, rp.eax.byte.ah));
208 struct bop_regs rp = {0};
210 rp.eax.byte.ah = 0x8; /* get params */
211 rp.edx.byte.dl = drivenum;
213 BOP_DOINT(bootops, 0x13, &rp);
215 if (((rp.eflags & PS_C) != 0) || rp.eax.byte.ah != 0) {
217 drivenum, rp.eflags, rp.eax.byte.ah));
228 struct bop_regs rp = {0};
231 rp.eax.byte.ah = 0x0; /* reset disk */
232 rp.edx.byte.dl = drivenum;
234 BOP_DOINT(bootops, 0x13, &rp);
236 status = rp.eax.byte.ah;
238 if (((rp.eflags & PS_C) != 0) || status != 0)
248 struct bop_regs rp = {0};
258 rp.eax.byte.ah = 0x2; /* Read disk */
259 rp.eax.byte.al = 1; /* nsect */
260 rp.ecx.byte.ch = 0; /* cyl & 0xff */
261 rp.ecx.byte.cl = 1; /* cyl >> 2 & 0xc0 (sector number) */
262 rp.edx.byte.dh = 0; /* head */
263 rp.edx.byte.dl = drivenum; /* drivenum */
266 rp.ebx.word.bx = (uint16_t)FP_OFF((uint_t)(uintptr_t)bufp);
267 rp.es = FP_SEG((uint_t)(uintptr_t)bufp);
269 BOP_DOINT(bootops, 0x13, &rp);
271 status = rp.eax.byte.ah;
272 if (((rp.eflags & PS_C) != 0) || status != 0) {
292 struct bop_regs rp = {0};
309 rp.eax.word.ax = 0x4b01;
310 rp.edx.byte.dl = drivenum;
312 rp.esi.word.si = (uint16_t)FP_OFF((uint_t)(uintptr_t)bufp);
313 rp.ds = FP_SEG((uint_t)(uintptr_t)bufp);
315 BOP_DOINT(bootops, 0x13, &rp);
317 if ((rp.eflags & PS_C) != 0 || bufp->drivenum != drivenum) {
320 rp.eflags, rp.eax.byte.ah, bufp->drivenum));