__aa_new_learning_profile(9)
β¨ __aa_new_learning_profile β kernel API manual energy β¨
Okay bestie, so we're diving into the Kernel API Manual for __aa_new_learning_profile(9) and honestly? It's giving "create or find a null-X learning profile" and I'm obsessed. Let me break it down for you π
πΈ NAME πΈ
__aa_new_learning_profile β create or find a null-X learning profile
π¦ SYNOPSIS π¦
Okay so here's the vibe, no cap:
struct aa_profile * __aa_new_learning_profile (struct aa_profile *parent
, bool hat , const char *base , gfp_t gfp );
π ARGUMENTS π
Bestie, let me introduce you to the squad:
parentβ the profile that caused this profile to be created. And like, it is NOT NULL, periodt. You cannot skip this one, it's main character energy only.hatβtrueif the null- learning profile is a hat. Yeah, a hat. We love a good hat moment π©baseβ the name you wanna base the null profile off of. Like a little name inspo, y'know?gfpβ the type of allocation. Just the allocation type, nothing dramatic.
π DESCRIPTION π
So basically, this function finds or creates a null- complain mode profile that gets used in learning mode. Super important stuff.
The name of the profile is unique, and it follows this exact format, character for character:
parent//null-XXX
where XXX is based on the name β or, if that fails or you just didn't supply a name, it falls back to a unique number. Either way, it's getting a name, slay β¨
Now here's the tea about null profiles: they get added to the profile list, but the list does not hold a count on them β which means they're automatically released when they're not in use anymore. Iconic behavior, honestly. Lowkey self-cleaning. We stan a low-maintenance profile π«Ά
π RETURN π
You get a new refcounted profile β or NULL on failure. That's it, that's the return. Fingers crossed for the refcounted one tho π
π§ SEE ALSO π§
Okay the whole security squad shows up here. Make sure you check them all out, fr fr:
- Kernel file
./security/apparmor/policy.c aa_pdb_free_kref(9)__add_profile(9)__list_remove_profile(9)__remove_profile(9)__aa_profile_list_release(9)aa_free_data(9)aa_free_profile(9)aa_alloc_profile(9)__strn_find_child(9)__find_child(9)aa_find_child(9)__lookup_parent(9)__create_missing_ancestors(9)__lookupn_profile(9)aa_lookupn_profile(9)replacement_allowed(9)audit_policy(9)aa_policy_view_capable(9)aa_may_manage_policy(9)__replace_profile(9)__lookup_replace(9)aa_replace_profiles(9)aa_remove_profiles(9)
β οΈ Quick heads up bestie: the parent argument is NOT NULL β do not test that. It's literally in the manual. Respect the constraints, okay? π
And that's the whole manual page, bestie! This gorgeous piece of kernel documentation lives in ./security/apparmor, dated October 2026, and it's filed under __aa_new_learning_profile(9) in the Kernel API Manual. Go forth and create those null learning profiles responsibly π¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms