sysinfo.odin 691 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package sysinfo
  2. when !(ODIN_ARCH == .amd64 || ODIN_ARCH == .i386 || ODIN_ARCH == .arm32 || ODIN_ARCH == .arm64) {
  3. #assert(false, "This package is unsupported on this architecture.")
  4. }
  5. os_version: OS_Version
  6. ram: RAM
  7. gpus: []GPU
  8. OS_Version_Platform :: enum {
  9. Unknown,
  10. Windows,
  11. Linux,
  12. MacOS,
  13. iOS,
  14. FreeBSD,
  15. OpenBSD,
  16. NetBSD,
  17. }
  18. OS_Version :: struct {
  19. platform: OS_Version_Platform,
  20. major: int,
  21. minor: int,
  22. patch: int,
  23. build: [2]int,
  24. version: string,
  25. as_string: string,
  26. }
  27. RAM :: struct {
  28. total_ram: int,
  29. free_ram: int,
  30. total_swap: int,
  31. free_swap: int,
  32. }
  33. GPU :: struct {
  34. vendor_name: string,
  35. model_name: string,
  36. total_ram: int,
  37. }