github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/pkg/acpi/tables_linux.go (about) 1 // Copyright 2019 the u-root Authors. All rights reserved 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build linux 6 7 package acpi 8 9 import ( 10 "path/filepath" 11 ) 12 13 var ( 14 // DefaultMethod is the name of the default method used to get tables. 15 DefaultMethod = "files" 16 // Methods is the map of all methods implemented for Linux. 17 Methods = map[string]TableMethod{ 18 "files": RawTablesFromSys, 19 "ebda": RawTablesFromMem, 20 } 21 ) 22 23 // MethodNames returns the list of supported MethodNames. 24 func MethodNames() []string { 25 var s []string 26 for name := range Methods { 27 s = append(s, name) 28 } 29 return s 30 } 31 32 // RawTablesFromSys returns an array of Raw tables, for all ACPI tables 33 // available in /sys. 34 func RawTablesFromSys() ([]Table, error) { 35 n, err := filepath.Glob("/sys/firmware/acpi/tables/[A-Z]*") 36 if err != nil { 37 return nil, err 38 } 39 40 var tabs []Table 41 for _, t := range n { 42 r, err := RawFromName(t) 43 if err != nil { 44 return nil, err 45 } 46 tabs = append(tabs, r...) 47 } 48 return tabs, nil 49 }