Changeset View
Changeset View
Standalone View
Standalone View
head/sys/boot/efi/libefi/efipart.c
Show First 20 Lines • Show All 813 Lines • ▼ Show 20 Lines | efipart_readwrite(EFI_BLOCK_IO *blkio, int rw, daddr_t blk, daddr_t nblks, | ||||
if (blkio == NULL) | if (blkio == NULL) | ||||
return (ENXIO); | return (ENXIO); | ||||
if (blk < 0 || blk > blkio->Media->LastBlock) | if (blk < 0 || blk > blkio->Media->LastBlock) | ||||
return (EIO); | return (EIO); | ||||
if ((blk + nblks - 1) > blkio->Media->LastBlock) | if ((blk + nblks - 1) > blkio->Media->LastBlock) | ||||
return (EIO); | return (EIO); | ||||
switch (rw) { | switch (rw & F_MASK) { | ||||
case F_READ: | case F_READ: | ||||
status = blkio->ReadBlocks(blkio, blkio->Media->MediaId, blk, | status = blkio->ReadBlocks(blkio, blkio->Media->MediaId, blk, | ||||
nblks * blkio->Media->BlockSize, buf); | nblks * blkio->Media->BlockSize, buf); | ||||
break; | break; | ||||
case F_WRITE: | case F_WRITE: | ||||
if (blkio->Media->ReadOnly) | if (blkio->Media->ReadOnly) | ||||
return (EROFS); | return (EROFS); | ||||
status = blkio->WriteBlocks(blkio, blkio->Media->MediaId, blk, | status = blkio->WriteBlocks(blkio, blkio->Media->MediaId, blk, | ||||
▲ Show 20 Lines • Show All 138 Lines • Show Last 20 Lines |