Пример #1
0
int rt_event_signal(RT_EVENT *event, unsigned long mask)
{
    return __CURRENT(rt_event_signal(event, mask));
}
Пример #2
0
void start_domain_zero(void *arg)
{
    DomainDesc      *domainInit;
    DomainProxy     *domainProxy;
    LibDesc         *lib;
    ObjectDesc      *dm;
    ArrayDesc       *arr;

    printk(KERN_INFO "Starting DomainZero.\n");

    /* load zero lib and create portals */
    lib = load(domainZero, "zero.jll");
    if (lib == NULL) {
        printk(KERN_ERR "Cannot load lib %s\n", "zero.jll");
        return;
    }

    /*
     * Create virtual method tables for interaction between
     * Java code and C-code that implements DomainZero.
     */
    zeroLib = lib->sharedLib;

    init_zero_from_lib(domainZero, lib->sharedLib);

    /* Domainzero's naming does now exist.
     * Make it available.
     */
    domainZero->initialNamingProxy = initialNamingProxy;

    callClassConstructors(domainZero, lib);

    lib = load(domainZero, "jdk0.jll");
    if (lib == NULL) {
        printk(KERN_ERR "Cannot load lib %s\n", "jdk0.jll");
        return;
    }
    callClassConstructors(domainZero, lib);

  /*********************************
   * Create and start initial Java domain
   *********************************/
    dm = (ObjectDesc *) lookupPortal("DomainManager");
    arr = (ArrayDesc *) newStringArray(domainZero, sizeof(start_libs) / sizeof(char *), start_libs);

    thread_prepare_to_copy();

    domainProxy =
        domainManager_createDomain(dm, newString(domainZero, "Init"), NULL, NULL, newString(domainZero, "init.jll"), arr,
                       newString(domainZero, "jx/init/Main"), getJVMConfig()->heapBytesDom0, -1, -1, NULL, -1,
                       getJVMConfig()->codeBytesDom0, NULL, (ObjectDesc *) domainZero->initialNamingProxy, NULL,
                       GC_IMPLEMENTATION_DEFAULT, NULL);
    domainInit = domainProxy->domain;

    printk(KERN_INFO "DomainZero initial thread done.\n");

    rt_event_signal(&jemEvents, JEM_INIT_COMPLETE);
    rt_task_yield();

    /* initial thread of DomainZero exits here */
}
Пример #3
0
void spin(void)
{
    rt_event_signal(&recv_data_msg_event, 1);
    ros::spin();
}