MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / HIPLCreate

Function HIPLCreate

src/SB/Core/x/xhipio.cpp:50–115  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50static st_HIPLOADDATA* HIPLCreate(const char* filename, char* dblbuf, S32 bufsize)
51{
52 st_HIPLOADDATA* lddata = NULL;
53 st_FILELOADINFO* fli;
54 st_HIPLOADBLOCK* tmp_blk;
55 S32 i;
56 S32 uselock = -1;
57
58 for (i = 0; i < 8; i++)
59 {
60 if (!(g_loadlock & (1 << i)))
61 {
62 g_loadlock |= 1 << i;
63
64 uselock = i;
65 lddata = &g_hiploadinst[i];
66
67 break;
68 }
69 }
70
71 if (lddata)
72 {
73 memset(lddata, 0, sizeof(st_HIPLOADDATA));
74
75 lddata->lockid = uselock;
76 lddata->top = -1;
77 lddata->base_sector = 0;
78 lddata->use_async = 0;
79 lddata->asyn_stat = HIP_RDSTAT_NONE;
80 lddata->bypass = 0;
81 lddata->bypass_recover = -1;
82 lddata->pos = 0;
83 lddata->readTop = 0;
84
85 for (i = 0; i < 8; i++)
86 {
87 tmp_blk = &lddata->stk[i];
88
89 tmp_blk->endpos = 0;
90 tmp_blk->blk_id = 0;
91 tmp_blk->blk_remain = 0;
92 tmp_blk->flags = 0;
93 }
94
95 fli = xBinioLoadCreate(filename);
96
97 if (fli)
98 {
99 lddata->fli = fli;
100 lddata->base_sector = fli->basesector;
101
102 if (dblbuf && bufsize > 0)
103 {
104 fli->setDoubleBuf(fli, dblbuf, bufsize);
105 }
106 }
107 else

Callers

nothing calls this directly

Calls 3

memsetFunction · 0.85
xBinioLoadCreateFunction · 0.70
HIPLDestroyFunction · 0.70

Tested by

no test coverage detected