Me@55: /* Me@55: * Copyright 2009 OpenSourceStewardshipFoundation.org Me@55: * Licensed under GNU General Public License version 2 Me@55: * Me@55: * Author: seanhalle@yahoo.com Me@55: * Me@55: */ Me@55: msach@77: #ifndef _ProcrContext_H msach@77: #define _ProcrContext_H msach@76: #define _GNU_SOURCE Me@55: msach@76: void saveCoreLoopReturnAddr(void **returnAddress); msach@71: msach@71: void switchToVP(VirtProcr *nextProcr); msach@71: msach@71: void switchToCoreLoop(VirtProcr *nextProcr); msach@71: msach@71: void masterSwitchToCoreLoop(VirtProcr *nextProcr); msach@71: msach@76: void startVirtProcrFn(); msach@76: msach@78: void *asmTerminateCoreLoop(VirtProcr *currPr); msach@78: msach@71: #define flushRegisters() \ msach@76: asm volatile ("":::"%rbx", "%r12", "%r13","%r14","%r15") msach@71: msach@77: inline VirtProcr * msach@77: create_procr_helper( VirtProcr *newPr, VirtProcrFnPtr fnPtr, msach@77: void *initialData, void *stackLocs ); Me@55: msach@77: #endif /* _ProcrContext_H */ Me@62: