X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/8fce4520de1f257819b16f9253fa28dcdae743f4..2236410f4582ab45ae8c384dd6eeeef5d10aab15:/lunaix-os/includes/lunaix/device_num.h diff --git a/lunaix-os/includes/lunaix/device_num.h b/lunaix-os/includes/lunaix/device_num.h index 704c39b..9011da3 100644 --- a/lunaix-os/includes/lunaix/device_num.h +++ b/lunaix-os/includes/lunaix/device_num.h @@ -1,6 +1,8 @@ #ifndef __LUNAIX_DEVICE_NUM_H #define __LUNAIX_DEVICE_NUM_H +#include + /* Device metadata field (device_def::meta) @@ -24,6 +26,8 @@ I2C: device connected through the IIC protocol + FMW: device is a system board firmware + The function defines the functionality that the device is designated to serve. Lunaix identify the following values: @@ -47,11 +51,22 @@ TTY: a device which can be called as teletypewriter, system can use such device for output into external environment + + CFG: device that provide configuration service to the system or other + devices + + */ -#define DEV_META(if_, function) (((if_) & 0xffff) << 16) | ((function) & 0xffff) -#define DEV_IF(meta) ((meta) >> 16) -#define DEV_FN(meta) (((meta) & 0xffff)) +#define DEV_FNGRP(if_, function) \ + (((if_) & 0xffff) << 16) | ((function) & 0xffff) +#define DEV_UNIQUE(devkind, variant) \ + (((devkind) & 0xffff) << 16) | ((variant) & 0xffff) +#define DEV_KIND_FROM(unique) ((unique) >> 16) +#define DEV_VAR_FROM(unique) ((unique) & 0xffff) + +#define DEV_IF(fngrp) ((fngrp) >> 16) +#define DEV_FN(fngrp) (((fngrp) & 0xffff)) #define DEVIF_NON 0x0 #define DEVIF_SOC 0x1 @@ -59,6 +74,7 @@ #define DEVIF_USB 0x3 #define DEVIF_SPI 0x4 #define DEVIF_I2C 0x5 +#define DEVIF_FMW 0x6 #define DEVFN_PSEUDO 0x0 #define DEVFN_CHAR 0x1 @@ -67,14 +83,44 @@ #define DEVFN_TIME 0x6 #define DEVFN_BUSIF 0x7 #define DEVFN_TTY 0x8 - -#define DEV_BUILTIN 0x0 -#define DEV_X86LEGACY 0x1 -#define DEV_RNG 0x2 -#define DEV_RTC 0x3 -#define DEV_SATA 0x4 -#define DEV_NVME 0x5 -#define DEV_BUS 0x6 -#define DEV_SERIAL 0x7 +#define DEVFN_DISP 0x9 +#define DEVFN_CFG 0xa + +#define DEV_BUILTIN 0 +#define DEV_BUILTIN_NULL 0 +#define DEV_BUILTIN_ZERO 1 + +#define DEV_VTERM 1 +#define DEV_RNG 2 +#define DEV_RTC 3 +#define DEV_SATA 4 +#define DEV_NVME 5 +#define DEV_PCI 6 +#define DEV_UART16550 7 + +#define DEV_TIMER 8 +#define DEV_TIMER_APIC 0 +#define DEV_TIMER_HEPT 1 + +#define DEV_NULL 9 +#define DEV_ZERO 10 +#define DEV_KBD 11 +#define DEV_GFXA 12 +#define DEV_VGA 13 +#define DEV_ACPI 14 + +struct devident +{ + u32_t fn_grp; + u32_t unique; +}; + +struct devclass +{ + u32_t fn_grp; + u32_t device; + u32_t variant; + u32_t hash; +}; #endif /* __LUNAIX_DEVICE_NUM_H */