Lines Matching defs:p2o

61 static void		cpu_p2o_mapout(int cpuid, post2obp_info_t *p2o);
62 static void p2o_update_checksum(post2obp_info_t *p2o);
63 static uint_t p2o_calc_checksum(post2obp_info_t *p2o);
64 static void p2o_mem_sort(post2obp_info_t *p2o);
65 static void p2o_mem_coalesce(post2obp_info_t *p2o);
117 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
119 bda_board = p2o->p2o_bdinfo[boardnum].bda_board;
130 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
132 return ((void *)&(p2o->p2o_bdinfo[boardnum]));
143 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
146 return (p2o->p2o_memtotal.Memt_NumPages);
148 asr = p2o->p2o_bdminfo[boardnum].bmda_adr;
162 for (c = 0; c < p2o->p2o_memtotal.Memt_NumChunks; c++) {
165 c_basepfn = (pfn_t)p2o->p2o_mchunks[c].Memc_StartAddress
167 c_endpfn = (pfn_t)p2o->p2o_mchunks[c].Memc_Size
187 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
191 ASSERT(p2o);
193 nchunks = p2o->p2o_memtotal.Memt_NumChunks;
200 if (a_pfn <= p2o->p2o_mchunks[c].Memc_StartAddress) {
202 p2o->p2o_mchunks[cend] =
203 p2o->p2o_mchunks[cend - 1];
207 p2o->p2o_mchunks[c].Memc_StartAddress = a_pfn;
208 p2o->p2o_mchunks[c].Memc_Size = a_npgs;
211 p2o->p2o_memtotal.Memt_NumChunks = nchunks;
212 p2o->p2o_memtotal.Memt_NumPages += a_npgs;
214 p2o_mem_sort(p2o);
215 p2o_mem_coalesce(p2o);
216 p2o_update_checksum(p2o);
222 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
228 ASSERT(p2o);
232 n_nchunks = o_nchunks = p2o->p2o_memtotal.Memt_NumChunks;
233 endp = &(p2o->p2o_mchunks[o_nchunks]);
239 p_pfn = p2o->p2o_mchunks[c].Memc_StartAddress;
240 p_npgs = p2o->p2o_mchunks[c].Memc_Size;
288 p2o->p2o_mchunks[c].Memc_StartAddress = p_pfn;
289 p2o->p2o_mchunks[c].Memc_Size = p_npgs;
294 p2o->p2o_memtotal.Memt_NumChunks = n_nchunks;
295 p2o->p2o_memtotal.Memt_NumPages = npages;
304 for (mp = &(p2o->p2o_mchunks[0]); mp < endp; mp++) {
315 ASSERT(endp == &(p2o->p2o_mchunks[n_nchunks]));
317 p2o_mem_sort(p2o);
318 p2o_mem_coalesce(p2o);
319 p2o_update_checksum(p2o);
331 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
345 p2o->p2o_bdminfo[b].bmda_adr = masr_value;
352 p2o_update_checksum(p2o);
358 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
361 *amask = p2o ? p2o->p2o_abus_mask : 0;
364 *dmask = p2o ? p2o->p2o_dbus_mask : 0;
370 post2obp_info_t *p2o = ((p2o_info_t *)ph)->p2o_ptr;
373 if (p2o == NULL)
376 csum = p2o_calc_checksum(p2o);
378 return (csum == p2o->p2o_csum);
390 p2o_update_checksum(post2obp_info_t *p2o)
394 ASSERT(p2o);
396 new_csum = p2o_calc_checksum(p2o);
397 p2o->p2o_csum = new_csum;
401 p2o_calc_checksum(post2obp_info_t *p2o)
408 ASSERT(p2o != NULL);
410 nchunks = p2o->p2o_memtotal.Memt_NumChunks;
415 o_csum = p2o->p2o_csum;
416 p2o->p2o_csum = 0;
418 for (i = 0, csumptr = (uint_t *)p2o; i < p2o_size; i++)
420 p2o->p2o_csum = o_csum;
432 p2o_mem_sort(post2obp_info_t *p2o)
440 ASSERT(p2o != NULL);
442 nchunks = p2o->p2o_memtotal.Memt_NumChunks;
443 base = &p2o->p2o_mchunks[0];
489 p2o_mem_coalesce(post2obp_info_t *p2o)
497 ASSERT(p2o != NULL);
499 nchunks = new_nchunks = p2o->p2o_memtotal.Memt_NumChunks;
500 mc = &p2o->p2o_mchunks[0];
532 npages += p2o->p2o_mchunks[i].Memc_Size;
534 p2o->p2o_memtotal.Memt_NumChunks = new_nchunks;
535 p2o->p2o_memtotal.Memt_NumPages = npages;
568 * cpu_p2o_physaddr = Beginning of page containing p2o.
569 * cpu_p2o_offset = Offset within page where p2o starts.
588 cpu_p2o_mapout(int cpuid, post2obp_info_t *p2o)
610 cvaddr = (ulong_t)p2o - cpu_p2o_offset;