// initcache.sr


get "BRAVO1.DF"
get "CACHE.DF"


// Outgoing Procedures

external	[
	CacheInit
	]


// Outgoing Statics

// external


// Incoming Procedures

external	[
	mult
	]


// Incoming Statics

// external


// Local Statics

// static


// Local Structures

// structure


// Local Manifests

// manifest


// C A C H E   I N I T

let CacheInit(cci, lnci, Alloc) = valof
[
let cache = Alloc(mult(cci, lnci) + offaciCache)
cache>>CACHE.cci = cci
cache>>CACHE.lnci = lnci
cache>>CACHE.tlru = 0
let ci = lv cache>>CACHE.aci
let lnpl = lnci - offaplCi
for i = 0 to cci-1 do
	[
	ci>>CI.cii = siNil
	ci>>CI.tlru = 0
	let pl = lv ci>>CI.apl
	for iw = 0 to lnpl-1 do pl ! iw = 0
	ci = ci + lnci
	]
resultis cache
] // end CacheInit