A kernel module

Since FreeMiNT 1.16.0, XaAES is a loadable kernel module. The first entry point is xaloader.prg. This tool loads the xaaes.km file and run his main function.

xaaes

Kernel module initialization

  • init_km() - init.c
    • setup the module API
    • clear all data
    • set log file
    • init environment
    • delete cookies FSEL and HBFS
    • allocate window handles
    • initialize objects
    • allocate memory for Common data
    • initialize lists for clients, applications and tabs
    • load xaaes.cnf and configure settings
    • check if mouse drivers are available
    • setup the trap table
    • initialize NKC
    • setup language from LANG envvar or AKP cookie
    • setup fonts
    • load mouse driver
    • create the main thread
    • shutdown or reboot

Mouse driver

  • mouse.adi
  • mouse_w.adi

Low level facilities

  • NKC
  • Memory management, user and kernel
  • Cookie management, read only and read/write
  • Debug and diags
  • Semaphores
  • Drives, paths and files management