(file) Return to loading.txt CVS log (file) (dir) Up to [Pegasus] / pegasus / vxworks / doc

File: [Pegasus] / pegasus / vxworks / doc / Attic / loading.txt (download)
Revision: 1.1.2.1, Sat Dec 1 18:19:17 2007 UTC (16 years, 7 months ago) by mike
Branch: TASK-PEP305_VXWORKS-branch
CVS Tags: TASK-PEP305_VXWORKS-branch-beta2, TASK-PEP305_VXWORKS-2008-10-23
Changes since 1.1: +77 -0 lines
PEP#: 305
TITLE: VxWorks Port

DESCRIPTION: Ongoing VxWorks porting.

                        Loading the cimserver on VxWorks
                        ================================


Loading from Kernel Shell:
==========================


-> ld < PATH

-> lkAddr cimserver
0x073dbe08 std::collate<char>::id    text    
0x079217e4 cimserver                 text    
0x079438c8 $a                        text     (local)
0x0794398c $d                        text     (local)
0x0794399c $a                        text     (local)
0x0794399c __static_initialization_and_destruction_0(int, int) text     (local)
0x079439ec $d                        text     (local)
0x079439f0 _GLOBAL__I_cimserver      text    
0x079439f0 $a                        text     (local)
0x07943a00 _GLOBAL__D_cimserver      text    
0x07943a10 Pegasus::MyEmbeddedServer::MyEmbeddedServer() [subobject] text    
0x07943a10 $a                        text     (local)
value = 0 = 0x0

# Use address from list above as last argument:
-> taskSpawn("t123", 100, 0x19, 64536, 0x079217e4)

Loading in program:
===================

    {
        char path[1024];
        int fd;
        char* value;
        SYM_TYPE type;

        /* Load cimserver module */

        sprintf(path, "%s/cimserver", root);

        if ((fd = open(path, O_RDONLY, 0)) < 0)
        {
            printf("***** open() failed\n");
            return;
        }



        if (loadModule(fd, LOAD_ALL_SYMBOLS) == NULL)
        {
            printf("***** loadModule() failed\n");
            return;
        }

        close(fd);

        /* Lookup cimserver entry point. */


        if (symFindByName(sysSymTbl, "cimserver", &value, &type) != 0)
        {
            printf("***** symFindByName() failed\n");
            return;
        }

        /* spawn cimserver task */

        if (taskSpawn("cimsrv", 100,0x19, 2 * 64536, 
            (FUNCPTR)value, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) == ERROR)
        {
            printf("***** taskSpawn() failed\n");
            return;
        }
    }



No CVS admin address has been configured
Powered by
ViewCVS 0.9.2