syntax = "proto3";

package metropolis.pkg.kmod;

option go_package = "source.monogon.dev/metropolis/pkg/kmod/spec";

// Module contains important metadata about a Linux kernel module.
message Module {
    // Name of the module
    string name = 1;
    // Path of the module, relative to the module root.
    // Unset if built-in.
    string path = 2;
    // List of Meta.modules indices on which this module depends.
    repeated uint32 depends = 3;
}

message RadixNode {
    enum Type {
        // Matches one or more characters literally.
        LITERAL = 0;
        // Matches zero or more arbitrary characters.
        WILDCARD = 1;
        // Matches exactly one arbitrary character.
        SINGLE_WILDCARD = 2;
        // Matches exactly one character between start_byte and end_byte.
        BYTE_RANGE = 3;
        // Root matches nothing, but serves a the root node for a radix
        // tree.
        ROOT = 4;
    }
    Type type = 1;

    // Only valid for LITERAL type
    string literal = 2;

    // Only valid when BYTE_RANGE type
    uint32 start_byte = 3;
    uint32 end_byte = 4;

    // Contains a list of radix nodes which are children of this node.
    repeated RadixNode children = 5;

    // A list of module indices (in the Meta.modules list) which have
    // match expressions ending at this node.
    repeated uint32 module_index = 6;
}

// Meta contains metadata about all modules in a Linux kernel
message Meta {
    // Contains a list of modules, including built-in ones.
    repeated Module modules = 1;

    // Contains the root node of a radix tree for looking up modules to load
    // for a given device modalias.
    RadixNode module_device_matches = 2;
}