# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2026 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only

  abi <abi/4.0>,

  @{sys}/class/nvme/ r,

  @{sys}/devices/@{pci}/nvme/nvme@{u8}/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/dev r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/holders/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/power/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/ro r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/size r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/start r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/trace/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/@{nvme}p@{u8}/uevent r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/csi r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/dev r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/eui r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/hidden r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/holders/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/metadata_bytes r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/nsid r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/nuse r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/queue/discard_granularity r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/queue/logical_block_size r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/queue/rotational r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/removable r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/ro r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/size r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/size r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/slaves/ r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/uevent r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/@{nvme}/wwid r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/address r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/cntlid r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/cntrltype r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/dctype r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/firmware_rev r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/model r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/numa_node r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/queue_count r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/serial r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/sqsize r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/state r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/subsysnqn r,
  @{sys}/devices/@{pci}/nvme/nvme@{u8}/transport r,

  include if exists <abstractions/sys/nvme.d>

# vim:syntax=apparmor
