/** * * Kupac maximális elemét lekérdező művelet * * @return kupac tetején lévő elem * */ const T& top() { if (empty()) { throw EmptyHeap(); } return v[0]; }
AGESA_STATUS agesawrapper_amdinitpost(void) { AGESA_STATUS status; AMD_INTERFACE_PARAMS AmdParamStruct; AMD_POST_PARAMS *PostParams; memset(&AmdParamStruct, 0, sizeof(AMD_INTERFACE_PARAMS)); AmdParamStruct.AgesaFunctionName = AMD_INIT_POST; AmdParamStruct.AllocationMethod = PreMemHeap; AmdParamStruct.StdHeader.AltImageBasePtr = 0; AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout; AmdParamStruct.StdHeader.Func = 0; AmdParamStruct.StdHeader.ImageBasePtr = 0; AmdCreateStruct(&AmdParamStruct); /* OEM Should Customize the defaults through this hook. */ PostParams = (AMD_POST_PARAMS *) AmdParamStruct.NewStructPtr; if (OemHook->InitPost) OemHook->InitPost(PostParams); status = AmdInitPost(PostParams); AGESA_EVENTLOG(status, &PostParams->StdHeader); AmdReleaseStruct(&AmdParamStruct); /* Initialize heap space */ EmptyHeap(); return status; }
AGESA_STATUS agesawrapper_amdinitenv(void) { AGESA_STATUS status; AMD_INTERFACE_PARAMS AmdParamStruct; AMD_ENV_PARAMS *EnvParam; /* Initialize heap space */ EmptyHeap(); memset(&AmdParamStruct, 0, sizeof(AMD_INTERFACE_PARAMS)); AmdParamStruct.AgesaFunctionName = AMD_INIT_ENV; AmdParamStruct.AllocationMethod = PostMemDram; AmdParamStruct.StdHeader.AltImageBasePtr = 0; AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout; AmdParamStruct.StdHeader.Func = 0; AmdParamStruct.StdHeader.ImageBasePtr = 0; AmdCreateStruct(&AmdParamStruct); EnvParam = (AMD_ENV_PARAMS *) AmdParamStruct.NewStructPtr; status = AmdInitEnv(EnvParam); AGESA_EVENTLOG(status, &EnvParam->StdHeader); AmdReleaseStruct(&AmdParamStruct); return status; }
AGESA_STATUS agesawrapper_amdinitpost(void) { AGESA_STATUS status; AMD_INTERFACE_PARAMS AmdParamStruct; AMD_POST_PARAMS *PostParams; LibAmdMemFill (&AmdParamStruct, 0, sizeof (AMD_INTERFACE_PARAMS), &(AmdParamStruct.StdHeader)); AmdParamStruct.AgesaFunctionName = AMD_INIT_POST; AmdParamStruct.AllocationMethod = PreMemHeap; AmdParamStruct.StdHeader.AltImageBasePtr = NULL; AmdParamStruct.StdHeader.CalloutPtr = &GetBiosCallout; AmdParamStruct.StdHeader.Func = 0; AmdParamStruct.StdHeader.ImageBasePtr = 0; AmdCreateStruct (&AmdParamStruct); PostParams = (AMD_POST_PARAMS *)AmdParamStruct.NewStructPtr; OemPostParams(PostParams); // Do not use IS_ENABLED here. CONFIG_GFXUMA should always have a value. Allow // the compiler to flag the error if CONFIG_GFXUMA is not set. PostParams->MemConfig.UmaMode = CONFIG_GFXUMA ? UMA_AUTO : UMA_NONE; PostParams->MemConfig.UmaSize = 0; PostParams->MemConfig.BottomIo = (UINT16)(0xD0000000 >> 24); status = AmdInitPost (PostParams); printk( BIOS_SPEW, "setup_uma_memory: umamode %s\n", (PostParams->MemConfig.UmaMode == UMA_AUTO) ? "UMA_AUTO" : (PostParams->MemConfig.UmaMode == UMA_SPECIFIED) ? "UMA_SPECIFIED" : (PostParams->MemConfig.UmaMode == UMA_NONE) ? "UMA_NONE" : "unknown" ); printk( BIOS_SPEW, "setup_uma_memory: syslimit 0x%08llX, bottomio 0x%08lx\n", (unsigned long long)(PostParams->MemConfig.SysLimit) << 16, (unsigned long)(PostParams->MemConfig.BottomIo) << 16 ); printk( BIOS_SPEW, "setup_uma_memory: uma size %luMB, uma start 0x%08lx\n", (unsigned long)(PostParams->MemConfig.UmaSize) >> (20 - 16), (unsigned long)(PostParams->MemConfig.UmaBase) << 16 ); if (status != AGESA_SUCCESS) agesawrapper_amdreadeventlog(PostParams->StdHeader.HeapStatus); AmdReleaseStruct (&AmdParamStruct); /* Initialize heap space */ EmptyHeap(); return status; }
/** * * Kupacból kivesszük a legfelső elemet * */ void pop() { if (!empty()) { std::swap(v[0], v[v.size() - 1]); v.pop_back(); if (!empty()) { liftDown(0); } } else { throw EmptyHeap(); } }
int main() { heap pq; InitHeap(&pq, comp); PushHeap(&pq, 3343, 1, 0); PushHeap(&pq, 13, 1, 0); PushHeap(&pq, 241, 1, 0); PushHeap(&pq, 54, 1, 0); PushHeap(&pq, 2324, 1, 0); PushHeap(&pq, 3, 1, 0); while(!EmptyHeap(&pq)) { printf("%d\n", FrontHeapValue(&pq)); PopHeap(&pq); } ClearHeap(&pq); return 0; }