gcn_assembler/program/
mod.rs1use crate::instructions::GcnInstruction;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct GcnProgram {
7 pub name: String,
8 pub kernels: Vec<GcnKernel>,
9}
10
11impl GcnProgram {
12 pub fn new(name: String) -> Self {
13 Self { name, kernels: Vec::new() }
14 }
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct GcnKernel {
20 pub name: String,
21 pub instructions: Vec<GcnInstruction>,
22 pub args: Vec<GcnKernelArg>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct GcnKernelArg {
28 pub name: String,
29 pub size: usize,
30 pub offset: usize,
31}