1 /*
2  * Copyright (c) 2013-2023 Ali Mashtizadeh
3  * All rights reserved.
4  */
5 
6 #include <stdint.h>
7 
8 #include <sys/kassert.h>
9 #include <sys/sga.h>
10 
11 void
SGArray_Init(SGArray * sga)12 SGArray_Init(SGArray *sga)
13 {
14     sga->len = 0;
15 }
16 
17 int
SGArray_Append(SGArray * sga,uint64_t off,uint64_t len)18 SGArray_Append(SGArray *sga, uint64_t off, uint64_t len)
19 {
20     ASSERT(sga->len < SGARRAY_MAX_ENTRIES)
21 
22     sga->entries[sga->len].offset = off;
23     sga->entries[sga->len].length = len;
24     sga->len++;
25 
26     return sga->len;
27 }
28 
29 void
SGArray_Dump(SGArray * sga)30 SGArray_Dump(SGArray *sga)
31 {
32     int i;
33 
34     kprintf("--- SGArray Begin ---\n");
35     for (i = 0; i < sga->len; i++)
36     {
37 	kprintf("%d: %016llx %016llx\n", i, sga->entries[i].offset,
38 		sga->entries[i].length);
39     }
40     kprintf("--- SGArray End ---\n");
41 }
42 
43