| /** |
| # Copyright 2024 NVIDIA CORPORATION |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| **/ |
| |
| package nvsandboxutils |
| |
| import "C" |
| |
| func (l *library) Init(path string) Ret { |
| if err := l.load(); err != nil { |
| return ERROR_LIBRARY_LOAD |
| } |
| |
| input := InitInput{ |
| Version: 1, |
| Type: uint32(NV_ROOTFS_PATH), |
| Value: convertStringToFixedArray(path), |
| } |
| |
| return nvSandboxUtilsInit(&input) |
| } |
| |
| func (l *library) Shutdown() Ret { |
| ret := nvSandboxUtilsShutdown() |
| if ret != SUCCESS { |
| return ret |
| } |
| |
| err := l.close() |
| if err != nil { |
| return ERROR_UNKNOWN |
| } |
| |
| return ret |
| } |
| |
| // TODO: Is this length specified in the header file? |
| const VERSION_LENGTH = 100 |
| |
| func (l *library) GetDriverVersion() (string, Ret) { |
| Version := make([]byte, VERSION_LENGTH) |
| ret := nvSandboxUtilsGetDriverVersion(&Version[0], VERSION_LENGTH) |
| return string(Version[:clen(Version)]), ret |
| } |
| |
| func (l *library) GetFileContent(path string) (string, Ret) { |
| Content := make([]byte, MAX_FILE_PATH) |
| FilePath := []byte(path + string(byte(0))) |
| Size := uint32(MAX_FILE_PATH) |
| ret := nvSandboxUtilsGetFileContent(&FilePath[0], &Content[0], &Size) |
| return string(Content[:clen(Content)]), ret |
| } |