コード例 #1
0
ファイル: init.c プロジェクト: AEUG/400plus
int my_usrInit(int startType) {
	sysHwInit0();

	bzero(&bss_begin, (&bss_begin - &bss_end));

	sysStartType = startType;
	intVecBaseSet(0);
	cacheLibInit(1, 2);
	excVecInit();
	sysHwInit();
	cacheEnable(0);
	cacheEnable(1);
	classLibInit();
	taskLibInit();

	qInit(&readyQHead,  qPriBMapClassId, &readyQBMap, 0x100);
	qInit(&activeQHead, qFifoClassId);
	qInit(&tickQHead,   qPriListClassId);

	workQInit();

	/* sysMemTop() - returns the LogBuffer address, the buffer is 1.5mb */
	kernelInit(my_usrRoot, 0x4000, &bss_end, sysMemTop(), 0xC00, 0);

	return 0;
}
コード例 #2
0
ファイル: prjConfig.c プロジェクト: vineethkartha/VxWorks
void usrInit (int startType)
    {
    sysStart (startType);               /* clear BSS and set up the vector table base address. */
    cacheLibInit (USER_I_CACHE_MODE, USER_D_CACHE_MODE); /* include cache support */
    excVecInit ();                      /* exception handling */
    sysHwInit ();                       /* call the BSPs sysHwInit routine during system startup */
    usrCacheEnable ();                  /* optionally enable caches */
    objOwnershipInit ();                /* object management ownership */
    objInfoInit ();                     /* object management routines that requires lookup in a 			list of objects, such as the objNameToId() routine. */
    objLibInit ((FUNCPTR)FUNCPTR_OBJ_MEMALLOC_RTN,					    FUNCPTR_OBJ_MEMFREE_RTN,					    OBJ_MEM_POOL_ID, 						    OBJ_LIBRARY_OPTIONS); /* object management */
    vxMemProbeInit ();                  /* Initialize vxMemProbe exception handler support */
    wvLibInit ();                       /* low-level kernel instrumentation needed by System Viewer */
    classListLibInit ();                /* object class list management */
    semLibInit ();                      /* semaphore support infrastructure */
                                        /* mutex semaphores */
                                        /* mutex semaphore creation routine */
    classLibInit ();                    /* object class management */
    kernelBaseInit ();                  /* required component DO NOT REMOVE. */
                                        /* __thread variables support */
    usrKernelInit (VX_GLOBAL_NO_STACK_FILL); /* context switch and interrupt handling (DO NOT REMOVE). */
    }
コード例 #3
0
int _tmain(int argc, _TCHAR* argv[])
{
	classLibInit();
	memPartLibInit(memBuf, MEM_LEN);

	char* a1 = (char*)memPartAlloc(memSysPartId, 10);
	char* a2 = (char*)memPartAlloc(memSysPartId, 45);
	memPartFree(memSysPartId, a1);
	memPartFree(memSysPartId, a2);

	a1 = (char*)memPartAlloc(memSysPartId, 10);
	a2 = (char*)memPartAlloc(memSysPartId, 45);

	memPartFree(memSysPartId, a2);
	memPartFree(memSysPartId, a1);

	a1 = (char*)memPartAlloc(memSysPartId, 10);
	a2 = (char*)memPartAlloc(memSysPartId, 12);
	char* a3 = (char*)memPartAlloc(memSysPartId, 45);

	memPartFree(memSysPartId, a2);

	char* a4 = (char*)memPartAlloc(memSysPartId, 12);

	testQueue();

	SEM_ID semId = semMCreate(0);

	int c = 0;
	semTake(semId, WAIT_FOREVER);
	c++;
	semGive(semId);

	semDelete(semId);

	gets(a1);
	return 0;
}