axdriver 0.2.2-preview.2

ArceOS device drivers
Documentation
[package]
name = "axdriver"
version = "0.2.2-preview.2"
edition.workspace = true
authors = [
    "Yuekai Jia <equation618@gmail.com>",
    "ChengXiang Qi <kuangjux@outlook.com>",
]
description = "ArceOS device drivers"
license.workspace = true
homepage.workspace = true
keywords.workspace = true
categories.workspace = true
repository = "https://github.com/arceos-org/arceos/tree/main/modules/axdriver"
documentation = "https://arceos-org.github.io/arceos/axdriver/index.html"

[features]
bus-mmio = []
bus-pci = ["dep:axdriver_pci", "dep:axhal", "dep:axconfig"]
net = ["dep:axdriver_net"]
block = ["dep:axdriver_block"]
display = ["dep:axdriver_display"]
input = ["dep:axdriver_input"]
vsock = ["axdriver_vsock"]

# Enabled by features `virtio-*`
virtio = ["dep:axdriver_virtio", "dep:axalloc", "dep:axhal", "dep:axconfig"]

# various types of drivers
virtio-blk = ["block", "virtio", "axdriver_virtio/block"]
virtio-net = ["net", "virtio", "axdriver_virtio/net"]
virtio-gpu = ["display", "virtio", "axdriver_virtio/gpu"]
virtio-input = ["input", "virtio", "axdriver_virtio/input"]
virtio-socket = ["vsock", "virtio", "axdriver_virtio/socket"]
ramdisk = ["block", "axdriver_block/ramdisk"]
bcm2835-sdhci = ["block", "axdriver_block/bcm2835-sdhci"]
sdmmc = ["block", "dep:axhal", "dep:axconfig", "axdriver_block/sdmmc"]
ahci = ["block", "dep:axhal", "dep:axconfig", "axdriver_block/ahci"]
ixgbe = ["net", "dep:axalloc", "dep:axhal", "dep:axdma", "axdriver_net/ixgbe"]
fxmac = ["net", "dep:axalloc", "dep:axhal", "dep:axdma", "axdriver_net/fxmac"]
# more devices example: e1000 = ["net", "axdriver_net/e1000"]

irq = []
dyn = [
    "dep:arm-gic-driver",
    "arm-gic-driver?/rdif",
    "dep:axerrno",
    "dep:axhal",
    "dep:axklib",
    "dep:dma-api",
    "dep:memory_addr",
    "dep:rdif-block",
    "dep:rdif-intc",
    "dep:rdrive",
    "dep:spin",
]

default = ["bus-pci"]

[dependencies]
axalloc = { version = "0.2.2-preview.1", optional = true }
axconfig = { version = "0.2.2-preview.1", optional = true }
axdma = { version = "0.2.2-preview.1", optional = true }
axdriver_base.workspace = true
axdriver_block = { workspace = true, optional = true }
axdriver_display = { workspace = true, optional = true }
axdriver_input = { workspace = true, optional = true }
axdriver_net = { workspace = true, optional = true }
axdriver_pci = { workspace = true, optional = true }
axdriver_virtio = { workspace = true, optional = true }
axdriver_vsock = { workspace = true, optional = true }
axerrno = { workspace = true, optional = true }
axhal = { version = "0.2.2-preview.2", optional = true }
axklib = { version = "0.2.0", optional = true }
cfg-if.workspace = true
crate_interface.workspace = true
dma-api = { version = "0.5", features = ["alloc"], optional = true }
log.workspace = true
memory_addr = { workspace = true, optional = true }
rdif-block = { version = "0.6.2", optional = true }
rdif-intc = { version = "0.12", optional = true }
rdrive = { version = "0.18", optional = true }
smallvec = { version = "1.15", features = ["const_generics", "union"] }
spin = { version = "0.10", optional = true }

[target.'cfg(target_arch = "aarch64")'.dependencies]
arm-gic-driver = { version = "0.15", optional = true }