gcn_assembler/program/
mod.rs1use crate::instructions::GcnInstruction;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct GcnProgram {
9 pub name: String,
11 pub kernels: Vec<GcnKernel>,
13}
14
15impl GcnProgram {
16 pub fn new(name: String) -> Self {
21 Self { name, kernels: Vec::new() }
22 }
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct GcnKernel {
28 pub name: String,
30 pub instructions: Vec<GcnInstruction>,
32 pub args: Vec<GcnKernelArg>,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct GcnKernelArg {
39 pub name: String,
41 pub size: usize,
43 pub offset: usize,
45}