# kunalsingh0720/linux architecture

> Architecture diagram of the GitHub repository kunalsingh0720/linux, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kunalsingh0720/linux
- Repository: https://github.com/kunalsingh0720/linux

## Overview

Linux is an operating-system kernel: user processes request services through system calls, while kernel subsystems coordinate hardware access and return results. The sampled files show several distinct paths—DMA-backed IIO buffering, asynchronous crypto requests, USB mass-storage emulation, SPI transfers, graphics display/GPU engines, and an s390 guarded-storage syscall—rather than a complete kernel tree. Edges reflect explicit interactions in the excerpts or the DMA framework’s documented role; unsampled subsystem wiring is omitted.

Main entry points: [`drivers/dma/dmaengine.c`](https://github.com/kunalsingh0720/linux/blob/master/drivers/dma/dmaengine.c) (DMAengine core), [`drivers/iio/buffer/industrialio-buffer-dmaengine.c`](https://github.com/kunalsingh0720/linux/blob/master/drivers/iio/buffer/industrialio-buffer-dmaengine.c) (DMA clients), [`drivers/crypto/ccp/ccp-dmaengine.c`](https://github.com/kunalsingh0720/linux/blob/master/drivers/crypto/ccp/ccp-dmaengine.c) (CCP DMA driver), [`drivers/dma/amd/ptdma/ptdma-dmaengine.c`](https://github.com/kunalsingh0720/linux/blob/master/drivers/dma/amd/ptdma/ptdma-dmaengine.c) (PTDMA driver)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dma["DMA and IIO"]
  node_dma_client["DMA clients"]
  node_dma_core["DMAengine core<br/>[dmaengine.c]"]
  node_dma_device["DMA hardware"]
  node_ccp["CCP DMA driver<br/>[ccp-dmaengine.c]"]
  node_ptdma["PTDMA driver<br/>[ptdma-dmaengine.c]"]
end

subgraph group_crypto["Crypto engines"]
  node_crypto_engine["Crypto engine queue<br/>[crypto_engine.c]"]
  node_crypto_client["Crypto algorithms"]
end

subgraph group_io["Device I/O"]
  node_usb_storage["USB mass storage<br/>[f_mass_storage.c]"]
  node_usb_host["USB host"]
  node_spi_driver["SPI Engine driver"]
  node_spi_device["SPI device"]
  node_board_driver["APU board GPIO<br/>[pcengines-apuv2.c]"]
  node_board_devices["Board GPIO devices"]
end

subgraph group_graphics["Graphics"]
  node_komeda["Komeda pipeline"]
  node_display_hw["Display hardware"]
  node_i915_engines["i915 engines<br/>[intel_engine_cs.c]"]
  node_xe_engines["Xe engines<br/>[xe_hw_engine.c]"]
  node_gpu_hw["GPU hardware"]
end

subgraph group_arch["Architecture services"]
  node_gs_syscall["Guarded storage<br/>[guarded_storage.c]"]
  node_s390_cpu["s390 CPU"]
end

node_process(("User process"))
node_syscalls["System calls"]

node_process -->|"invokes"| node_syscalls
node_syscalls -->|"dispatches"| node_gs_syscall
node_gs_syscall -->|"controls"| node_s390_cpu
node_dma_client -->|"requests channels"| node_dma_core
node_dma_core -->|"registers provider"| node_ccp
node_dma_core -->|"registers provider"| node_ptdma
node_ccp -->|"submits commands"| node_dma_device
node_ptdma -->|"submits commands"| node_dma_device
node_dma_client -->|"transfers samples"| node_dma_device
node_crypto_client -->|"queues requests"| node_crypto_engine
node_crypto_engine -->|"completes requests"| node_crypto_client
node_usb_storage -->|"serves USB requests"| node_usb_host
node_spi_driver -->|"transfers messages"| node_spi_device
node_board_driver -->|"registers GPIO devices"| node_board_devices
node_komeda -->|"updates pipeline"| node_display_hw
node_i915_engines -->|"programs engines"| node_gpu_hw
node_xe_engines -->|"programs engines"| node_gpu_hw

click node_dma_client "https://github.com/kunalsingh0720/linux/blob/master/drivers/iio/buffer/industrialio-buffer-dmaengine.c"
click node_dma_core "https://github.com/kunalsingh0720/linux/blob/master/drivers/dma/dmaengine.c"
click node_ccp "https://github.com/kunalsingh0720/linux/blob/master/drivers/crypto/ccp/ccp-dmaengine.c"
click node_ptdma "https://github.com/kunalsingh0720/linux/blob/master/drivers/dma/amd/ptdma/ptdma-dmaengine.c"
click node_crypto_engine "https://github.com/kunalsingh0720/linux/blob/master/crypto/crypto_engine.c"
click node_usb_storage "https://github.com/kunalsingh0720/linux/blob/master/drivers/usb/gadget/function/f_mass_storage.c"
click node_spi_driver "https://github.com/kunalsingh0720/linux/blob/master/drivers/spi/spi-axi-spi-engine.c"
click node_board_driver "https://github.com/kunalsingh0720/linux/blob/master/drivers/platform/x86/pcengines-apuv2.c"
click node_komeda "https://github.com/kunalsingh0720/linux/blob/master/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c"
click node_i915_engines "https://github.com/kunalsingh0720/linux/blob/master/drivers/gpu/drm/i915/gt/intel_engine_cs.c"
click node_xe_engines "https://github.com/kunalsingh0720/linux/blob/master/drivers/gpu/drm/xe/xe_hw_engine.c"
click node_gs_syscall "https://github.com/kunalsingh0720/linux/blob/master/arch/s390/kernel/guarded_storage.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dma_client,node_dma_core,node_dma_device,node_ccp,node_ptdma,node_process toneBlue
class node_crypto_engine,node_crypto_client toneAmber
class node_usb_storage,node_usb_host,node_spi_driver,node_spi_device,node_board_driver,node_board_devices toneMint
class node_komeda,node_display_hw,node_i915_engines,node_xe_engines,node_gpu_hw toneRose
class node_gs_syscall,node_s390_cpu,node_syscalls toneIndigo
```

## Components

### DMA and IIO

- [DMA clients](https://github.com/kunalsingh0720/linux/blob/master/drivers/iio/buffer/industrialio-buffer-dmaengine.c): `drivers/iio/buffer/industrialio-buffer-dmaengine.c`
- [DMAengine core](https://github.com/kunalsingh0720/linux/blob/master/drivers/dma/dmaengine.c): `drivers/dma/dmaengine.c`
- **DMA hardware**
- [CCP DMA driver](https://github.com/kunalsingh0720/linux/blob/master/drivers/crypto/ccp/ccp-dmaengine.c): `drivers/crypto/ccp/ccp-dmaengine.c`
- [PTDMA driver](https://github.com/kunalsingh0720/linux/blob/master/drivers/dma/amd/ptdma/ptdma-dmaengine.c): `drivers/dma/amd/ptdma/ptdma-dmaengine.c`

### Crypto engines

- [Crypto engine queue](https://github.com/kunalsingh0720/linux/blob/master/crypto/crypto_engine.c): `crypto/crypto_engine.c`
- **Crypto algorithms**

### Device I/O

- [USB mass storage](https://github.com/kunalsingh0720/linux/blob/master/drivers/usb/gadget/function/f_mass_storage.c): `drivers/usb/gadget/function/f_mass_storage.c`
- **USB host**
- [SPI Engine driver](https://github.com/kunalsingh0720/linux/blob/master/drivers/spi/spi-axi-spi-engine.c): `drivers/spi/spi-axi-spi-engine.c`
- **SPI device**
- [APU board GPIO](https://github.com/kunalsingh0720/linux/blob/master/drivers/platform/x86/pcengines-apuv2.c): `drivers/platform/x86/pcengines-apuv2.c`
- **Board GPIO devices**

### Graphics

- [Komeda pipeline](https://github.com/kunalsingh0720/linux/blob/master/drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c): `drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c`
- **Display hardware**
- [i915 engines](https://github.com/kunalsingh0720/linux/blob/master/drivers/gpu/drm/i915/gt/intel_engine_cs.c): `drivers/gpu/drm/i915/gt/intel_engine_cs.c`
- [Xe engines](https://github.com/kunalsingh0720/linux/blob/master/drivers/gpu/drm/xe/xe_hw_engine.c): `drivers/gpu/drm/xe/xe_hw_engine.c`
- **GPU hardware**

### Architecture services

- [Guarded storage](https://github.com/kunalsingh0720/linux/blob/master/arch/s390/kernel/guarded_storage.c): `arch/s390/kernel/guarded_storage.c`
- **s390 CPU**

### Other components

- **User process**
- **System calls**

## Connections

- User process → System calls: invokes
- System calls → Guarded storage: dispatches
- Guarded storage → s390 CPU: controls
- DMA clients → DMAengine core: requests channels
- DMAengine core → CCP DMA driver: registers provider
- DMAengine core → PTDMA driver: registers provider
- CCP DMA driver → DMA hardware: submits commands
- PTDMA driver → DMA hardware: submits commands
- DMA clients → DMA hardware: transfers samples
- Crypto algorithms → Crypto engine queue: queues requests
- Crypto engine queue → Crypto algorithms: completes requests
- USB mass storage → USB host: serves USB requests
- SPI Engine driver → SPI device: transfers messages
- APU board GPIO → Board GPIO devices: registers GPIO devices
- Komeda pipeline → Display hardware: updates pipeline
- i915 engines → GPU hardware: programs engines
- Xe engines → GPU hardware: programs engines
