void SC_LanguageClient::initRuntime(const Options& opt) { // start virtual machine if (!mHiddenClient->mRunning) { #ifdef __linux__ using DirName = SC_Filesystem::DirName; namespace bfs = boost::filesystem; bfs::path deprecatedSupportDirectory = SC_Filesystem::instance().getDirectory(DirName::UserHome); deprecatedSupportDirectory /= "share/SuperCollider"; if (bfs::exists(deprecatedSupportDirectory)) { bfs::path supportDirectory = SC_Filesystem::instance().getDirectory(DirName::UserAppSupport); postfl("WARNING: Deprecated support directory detected: %s\n" "Extensions and other contents in this directory will not be available until you move them to the new support directory:\n" "%s\n" "Quarks will need to be reinstalled due to broken symbolic links.\n\n", deprecatedSupportDirectory.string().c_str(), // we can safely convert to c_str here because the POSIX filesystem uses UTF-8 supportDirectory.string().c_str()); } #endif mHiddenClient->mRunning = true; if (opt.mRuntimeDir) { int err = chdir(opt.mRuntimeDir); if (err) error("Cannot change to runtime directory: %s", strerror(errno)); } pyr_init_mem_pools(opt.mMemSpace, opt.mMemGrow); init_OSC(opt.mPort); schedInit(); onInitRuntime(); } }
void SC_LanguageClient::initRuntime(const Options& opt) { // start virtual machine if (!mHiddenClient->mRunning) { #ifdef __linux__ char deprecatedSupportDirectory[PATH_MAX]; sc_GetUserHomeDirectory(deprecatedSupportDirectory, PATH_MAX); sc_AppendToPath(deprecatedSupportDirectory, PATH_MAX, "share/SuperCollider"); if (sc_DirectoryExists(deprecatedSupportDirectory)) { char supportDirectory[PATH_MAX]; sc_GetUserAppSupportDirectory(supportDirectory, PATH_MAX); postfl("WARNING: Deprecated support directory detected: %s\n" "Extensions and other contents in this directory will not be available until you move them to the new support directory:\n" "%s\n" "Quarks will need to be reinstalled due to broken symbolic links.\n\n", deprecatedSupportDirectory, supportDirectory); } #endif mHiddenClient->mRunning = true; if (opt.mRuntimeDir) { int err = chdir(opt.mRuntimeDir); if (err) error("Cannot change to runtime directory: %s", strerror(errno)); } pyr_init_mem_pools(opt.mMemSpace, opt.mMemGrow); init_OSC(opt.mPort); schedInit(); onInitRuntime(); } }
int main(int argc, char *argv[]) { list_entry_t *pos; int byteStart, byteEnd, globalEnd; struct ProcStruct *next; schedInit(); //init schedule printf("SchedInit finished!\n"); cpu_init(); //init cpu printf("Cpu init finished!\n"); initProcList(); //runnbale process printf("Init process list finished!\n"); procInit(); //init process table printf("The first proc init finished!\n"); initWaitQueue(); //init wait queue printf("Init wait queue finished!\n"); bc_read(&byteStart, &byteEnd, &globalEnd); //读取字节码 /* for (int i = 0; i < 7; i++) { printf("%d %d %d\n", byte_code[i].code, byte_code[i].arg1, byte_code[i].arg2); } */ createProcess(byteStart, byteEnd, globalEnd); //根据字节码的初始下标和终止下标创建第一个进程 // createProcess(0, 9, 3); //根据字节码的初始下标和终止下标创建第一个进程 printCurrent(); addRunEqueue(); //将创建的进程加入到就绪队列 printf("The proc addRunEqueu finished!\n"); while (cpu_state != 0 && rq->proc_num) { printf("schedul start...\n"); cpuSchedProc(); } while (rq->proc_num == 0 && wq->wait_num != 0) { next = waitQueuePickNext(wq); delWaitQueue(wq, next); schedClassEnqueue(next); schedule(); } return 0; }
int main() { pyr_init_mem_pools(2*1024*1024, 256*1024); init_OSC(57120); schedInit(); compileLibrary(); runLibrary(s_run); fflush(postfile); return 0; }
void SC_LanguageClient::initRuntime(const Options& opt) { // start virtual machine if (!mRunning) { mRunning = true; if (opt.mRuntimeDir) { int err = chdir(opt.mRuntimeDir); if (err) error("Cannot change to runtime directory: %s", strerror(errno)); } pyr_init_mem_pools(opt.mMemSpace, opt.mMemGrow); init_OSC(opt.mPort); schedInit(); onInitRuntime(); } }
void menuInit (Widget prnt, PgmState * pgm) { Arg arglist[20]; Cardinal i = 0; //the form with initial menu i = 0; XtSetArg (arglist[i], XtNleft, XawChainLeft); i++; XtSetArg (arglist[i], XtNright, XawChainLeft); i++; XtSetArg (arglist[i], XtNtop, XawChainTop); i++; XtSetArg (arglist[i], XtNbottom, XawChainTop); i++; // XtSetArg(arglist[i],XtNwidth,550);i++; // XtSetArg(arglist[i],XtNheight,200);i++; XtSetArg (arglist[i], XtNmappedWhenManaged, False); i++; pgm->main_form = XtCreateManagedWidget ("MainMenuForm", formWidgetClass, prnt, arglist, i); mainMenuInit (pgm->main_form, pgm); //the setup form pgm->setup_form = XtCreateManagedWidget ("SetupForm", formWidgetClass, prnt, arglist, i); setupInit (pgm->setup_form, pgm); i = 0; XtSetArg (arglist[i], XtNleft, XawChainLeft); i++; XtSetArg (arglist[i], XtNright, XawChainRight); i++; XtSetArg (arglist[i], XtNtop, XawChainTop); i++; XtSetArg (arglist[i], XtNbottom, XawChainBottom); i++; XtSetArg (arglist[i], XtNmappedWhenManaged, False); i++; //the form with master list, next/prev tp commands etc... and a back button pgm->mlist_form = XtCreateManagedWidget ("MasterListForm", formWidgetClass, prnt, arglist, i); masterListInit (pgm->mlist_form, pgm); //program guide pgm->epg_form = XtCreateManagedWidget ("EpgForm", formWidgetClass, prnt, arglist, i); epgDlgInit (pgm->epg_form, pgm); //videotext pgm->vt_form = XtCreateManagedWidget ("VtForm", formWidgetClass, prnt, arglist, i); vtDlgInit (pgm->vt_form, pgm); //the form with favlist pgm->favlist_form = XtCreateManagedWidget ("FavListForm", formWidgetClass, prnt, arglist, i); favListDlgInit (pgm->favlist_form, pgm); //scheduled recordings pgm->sched_form = XtCreateManagedWidget ("SchedForm", formWidgetClass, prnt, arglist, i); schedInit (pgm->sched_form, pgm); //the switch form pgm->switch_form = XtCreateManagedWidget ("SwitchForm", formWidgetClass, prnt, arglist, i); switchDlgInit (pgm->switch_form, pgm); /* pgm->stats_form=XtCreateManagedWidget("StatsForm",formWidgetClass,prnt,arglist,i); statsInit(pgm->stats_form,pgm); */ pgm->rmd_form = XtCreateManagedWidget ("ReminderForm", formWidgetClass, prnt, arglist, i); reminderListInit (pgm->rmd_form, pgm); pgm->rmd_ed_form = XtCreateManagedWidget ("ReminderEdForm", formWidgetClass, prnt, arglist, i); reminderEdInit (pgm->rmd_ed_form, pgm); pgm->mod_tp_form = XtCreateManagedWidget ("ModTpForm", formWidgetClass, prnt, arglist, i); modTpInit (pgm->mod_tp_form, pgm); pgm->ed_sched_form = XtCreateManagedWidget ("EdSched", formWidgetClass, prnt, arglist, i); schedEdInit (pgm->ed_sched_form, pgm); pgm->fe_ft_form = XtCreateManagedWidget ("FeFt", formWidgetClass, prnt, arglist, i); feFtInit (pgm->fe_ft_form, pgm); // pgm->fav_ed_form=XtCreateManagedWidget("FavEd",formWidgetClass,prnt,arglist,i); // favEdInit(pgm->fav_ed_form,pgm); }