lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAFGhKbz_4JunJhzbKeqYj8p2hVKNXwv_CsvhQYu0e5Mw1GhzMw@mail.gmail.com>
Date:	Mon, 25 Jul 2016 16:56:46 +0200
From:	Charlemagne Lasse <charlemagnelasse@...il.com>
To:	linux-doc@...r.kernel.org
Cc:	Jonathan Corbet <corbet@....net>, linux-kernel@...r.kernel.org
Subject: Visualizing linux kernel datastructures

Hi,

I wanted to understand some modules in the kernel and how their data
structures are interconnected. So I am not interested in all data
structures of the kernel but something more like
net/bridge/br_private.h.

With C++ I would just tell doxygen to generate uml-like class
diagrams. But the kernel code is C and doesn't use templates. So it is
sometimes quite hard to find out what is behind a struct list_head or
an struct rb_root. Beside the missing information about the type of
objects stored in the dynamic data structure, it is also sometimes not
easy to know if a struct list_head is now an anchor for this item in a
list or if this is the root/head of the list.

So my questions would be:

1. is there a standard (machine readable?) how to correctly document
(kernel-doc?) in the code if a struct list_head is the head/root of a
list or the anchor of the item in a list?

2. is there a standard (machine readable?) how to correctly document
the type of objects stored in a list/hlist/rbtree?

3. is there already some kind of tool to visualize data structures
from the Linux kernel which supports list/hlist/rbtree and shows it in
the diagram (image, graphviz, ...) as 1:n relation?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ