aboutsummaryrefslogtreecommitdiff
path: root/offload/liboffload/API/Program.td
blob: 7e11b3d8e331e511c8f7aa8ba1a56ef504c7cd05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//===-- Program.td - Program definitions for Offload -------*- tablegen -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file contains Offload API definitions related to the program handle
//
//===----------------------------------------------------------------------===//

def olCreateProgram : Function {
    let desc = "Create a program for the device from the binary image pointed to by `ProgData`.";
    let details = [
        "The provided `ProgData` will be copied and need not outlive the returned handle",
    ];
    let params = [
        Param<"ol_device_handle_t", "Device", "handle of the device", PARAM_IN>,
        Param<"const void*", "ProgData", "pointer to the program binary data", PARAM_IN>,
        Param<"size_t", "ProgDataSize", "size of the program binary in bytes", PARAM_IN>,
        Param<"ol_program_handle_t*", "Program", "output pointer for the created program", PARAM_OUT>
    ];
    let returns = [];
}

def olIsValidBinary : Function {
    let desc = "Validate if the binary image pointed to by `ProgData` is compatible with the device.";
    let details = ["The provided `ProgData` will not be loaded onto the device"];
    let params = [
        Param<"ol_device_handle_t", "Device", "handle of the device", PARAM_IN>,
        Param<"const void*", "ProgData", "pointer to the program binary data", PARAM_IN>,
        Param<"size_t", "ProgDataSize", "size of the program binary in bytes", PARAM_IN>,
        Param<"bool*", "Valid", "output is true if the image is compatible", PARAM_OUT>
    ];
    let returns = [];
}

def olDestroyProgram : Function {
    let desc = "Destroy the program and free all underlying resources.";
    let details = [];
    let params = [
        Param<"ol_program_handle_t", "Program", "handle of the program", PARAM_IN>
    ];
    let returns = [];
}