write_grub_config,
)
from .manifest import Manifest
-from .syscall import ioctl_partition_add, ioctl_partition_remove, reflink
+from .syscall import blkpg_add_partition, blkpg_del_partition, reflink
complete_step = MkosiPrinter.complete_step
# the BLKPKG BLKPG_ADD_PARTITION ioctl().
with open(loopdev, 'rb+') as f:
for p in table.partitions.values():
- ioctl_partition_add(f.fileno(), p.number, table.partition_offset(p), table.partition_size(p))
+ blkpg_add_partition(f.fileno(), p.number, table.partition_offset(p), table.partition_size(p))
try:
yield loopdev
# avoid race conditions by explicitly removing all partition devices before detaching the loop
# device using the BLKPG BLKPG_DEL_PARTITION ioctl().
for p in table.partitions.values():
- ioctl_partition_remove(f.fileno(), p.number)
+ blkpg_del_partition(f.fileno(), p.number)
run(["losetup", "--detach", loopdev])
cast,
)
-from .syscall import ioctl_partition_add, ioctl_partition_remove
+from .syscall import blkpg_add_partition, blkpg_del_partition
PathString = Union[Path, str]
with open(device, 'rb+') as f:
for p in self.partitions.values():
try:
- ioctl_partition_remove(f.fileno(), p.number)
+ blkpg_del_partition(f.fileno(), p.number)
except OSError as e:
if e.errno != errno.ENXIO:
raise
# Make sure we re-add all partitions after modifying the partition table.
with open(device, 'rb+') as f:
for p in self.partitions.values():
- ioctl_partition_add(f.fileno(), p.number, self.partition_offset(p), self.partition_size(p))
+ blkpg_add_partition(f.fileno(), p.number, self.partition_offset(p), self.partition_size(p))
@dataclasses.dataclass
]
-def ioctl_partition_add(fd: int, nr: int, start: int, size: int) -> None:
+def blkpg_add_partition(fd: int, nr: int, start: int, size: int) -> None:
bp = blkpg_partition(pno=nr, start=start, length=size)
ba = blkpg_ioctl_arg(op=BLKPG_ADD_PARTITION, data=ctypes.addressof(bp), datalen=ctypes.sizeof(bp))
try:
raise
-def ioctl_partition_remove(fd: int, nr: int) -> None:
+def blkpg_del_partition(fd: int, nr: int) -> None:
bp = blkpg_partition(pno=nr)
ba = blkpg_ioctl_arg(op=BLKPG_DEL_PARTITION, data=ctypes.addressof(bp), datalen=ctypes.sizeof(bp))
try: