Example #1
0
int main(void)
{
    int     i;
    ulong   allocs;
    char    *p,*pa[MAXALLOC];
    PM_HWND hwndConsole;

    hwndConsole = PM_openConsole(0,0,0,0,0,true);
    for (allocs = i = 0; i < MAXALLOC; i++) {
        if ((pa[i] = PM_malloc(10*1024)) != 0) {    /* in 10k blocks    */
            p = pa[allocs];
            memset(p, 0, 10*1024); /* touch every byte              */
            *p = 'x';           /* do something, anything with      */
            p[1023] = 'y';      /* the allocated memory             */
            allocs++;
            printf("Allocated %lu bytes\r", 10*(allocs << 10));
            }
        else break;
        if (PM_kbhit() && (PM_getch() == 0x1B))
            break;
        }
    PM_closeConsole(hwndConsole);

    printf("\n\nAllocated total of %lu bytes\n", 10 * (allocs << 10));

    for (i = allocs-1; i >= 0; i--)
        PM_free(pa[i]);

    return 0;
}
Example #2
0
int main(void)
{
    long            oldCount;
    PM_lockHandle   lh;
    PM_IRQHandle    isrHandle;

    /* Install our timer handler and lock handler pages in memory. It is
     * difficult to get the size of a function in C, but we know our
     * function is well less than 100 bytes (and an entire 4k page will
     * need to be locked by the server anyway).
     */
    PM_lockCodePages((__codePtr)timerHandler,100,&lh);
    PM_lockDataPages((void*)&count,sizeof(count),&lh);
    PM_installBreakHandler();           /* We *DONT* want Ctrl-Breaks! */
    isrHandle = PM_setIRQHandler(0,timerHandler,NULL);
    printf("Timer interrupt handler installed - Hit ESC to exit\n");
    oldCount = count;
    while (1) {
        if (PM_kbhit() && (PM_getch() == 0x1B))
            break;
        if (count != oldCount) {
            printf("Tick, Tock: %ld\n", count);
            oldCount = count;
            }
        }

    PM_restoreIRQHandler(isrHandle);
    PM_restoreBreakHandler();
    PM_unlockDataPages((void*)&count,sizeof(count),&lh);
    PM_unlockCodePages((__codePtr)timerHandler,100,&lh);
    printf("Timer handler was called %ld times\n", count);
    return 0;
}
Example #3
0
int main(void)
{
    long            oldCount;
    PM_lockHandle   lh;

    printf("Program running in ");
    switch (PM_getModeType()) {
	case PM_realMode:
	    printf("real mode.\n\n");
	    break;
	case PM_286:
	    printf("16 bit protected mode.\n\n");
	    break;
	case PM_386:
	    printf("32 bit protected mode.\n\n");
	    break;
	}

    /* Install our timer handler and lock handler pages in memory. It is
     * difficult to get the size of a function in C, but we know our
     * function is well less than 100 bytes (and an entire 4k page will
     * need to be locked by the server anyway).
     */
    PM_lockCodePages((__codePtr)RTCHandler,100,&lh);
    PM_lockDataPages((void*)&count,sizeof(count),&lh);
    PM_installBreakHandler();           /* We *DONT* want Ctrl-Breaks! */
    PM_setRealTimeClockHandler(RTCHandler,128);
    printf("RealTimeClock interrupt handler installed - Hit ESC to exit\n");
    oldCount = count;
    while (1) {
	if (PM_kbhit() && (PM_getch() == 0x1B))
	    break;
	if (count != oldCount) {
	    printf("Tick, Tock: %ld\n", count);
	    oldCount = count;
	    }
	}

    PM_restoreRealTimeClockHandler();
    PM_restoreBreakHandler();
    PM_unlockDataPages((void*)&count,sizeof(count),&lh);
    PM_unlockCodePages((__codePtr)RTCHandler,100,&lh);
    printf("RealTimeClock handler was called %ld times\n", count);
    return 0;
}
Example #4
0
int main(void)
{
	printf("Program running in ");
	switch (PM_getModeType()) {
		case PM_realMode:
			printf("real mode.\n\n");
			break;
		case PM_286:
			printf("16 bit protected mode.\n\n");
			break;
		case PM_386:
			printf("32 bit protected mode.\n\n");
			break;
		}

	PM_installAltBreakHandler(breakHandler);
	printf("Control C/Break interrupt handler installed\n");
	while (1) {
		if (ctrlCHit) {
			printf("Code termimated with Ctrl-C.\n");
			break;
			}
		if (breakHit) {
			printf("Code termimated with Ctrl-Break.\n");
			break;
			}
		if (PM_kbhit() && PM_getch() == 0x1B) {
			printf("No break code detected!\n");
			break;
			}
		printf("Hit Ctrl-C or Ctrl-Break to exit!\n");
		}

	PM_restoreBreakHandler();
	return 0;
}