Annotation of Examples/UNIX/LKSOutOfLineData/README.rtf, revision 1.1

1.1     ! root        1: {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;\f1\fmodern Courier;\f2\fmodern Ohlfs;}
        !             2: \paperw13700
        !             3: \paperh7320
        !             4: \margl120
        !             5: \margr120
        !             6: {\colortbl;\red0\green0\blue0;}
        !             7: \pard\tx1340\tx2680\tx4020\tx5360\tx6720\tx8060\tx9400\tx10740\tx12080\tx13440\f0\b0\i0\ulnone\fs28\fc0\cf0 This directory has an example loadable kernel server and a user-level program that communicates with it.  \
        !             8: \
        !             9: The loadable kernel server accepts two MiG-generated remote procedure calls:  
        !            10: \b mydriver_import()
        !            11: \b0 , which sends data to the server, and 
        !            12: \b mydriver_export()
        !            13: \b0 , which gets data from the server.\
        !            14: \
        !            15: Chapter 3, "Using Loadable Kernel Servers," of 
        !            16: \i NeXT Operating System Software
        !            17: \i0  gives more information on implementing user-level programs that communicate with loadable kernel servers.  
        !            18: \i Writing Loadable Kernel Servers
        !            19: \i0  gives information on implementing your own loadable kernel server.\
        !            20: \
        !            21: To build the loadable kernel server and user program, follow these steps:\
        !            22: \
        !            23: 1)  Make a copy of this directory and change to the new directory in a Terminal window.  For example:\
        !            24:        
        !            25: \f1\fc1\cf1 localhost> 
        !            26: \b cp -r /NextDeveloper/Examples/UNIX/LKSOutOfLineData ~
        !            27: \f0\b0\fc0\cf0 \
        !            28:        
        !            29: \f1\fc1\cf1 localhost> 
        !            30: \b cd
        !            31: \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\fc1\cf1  ~/
        !            32: \pard\tx1340\tx2680\tx4020\tx5360\tx6720\tx8060\tx9400\tx10740\tx12080\tx13440\fc1\cf1 LKSOutOfLineData
        !            33: \f0\b0 \
        !            34: \
        !            35: 2)  Run 
        !            36: \b make
        !            37: \b0  in the 
        !            38: \b KernelServer
        !            39: \b0  directory.  (It's important that you make the server before the user program, since the user program depends on files created during this step.)\
        !            40:        
        !            41: \f1 localhost> 
        !            42: \b cd KernelServer\
        !            43:        
        !            44: \b0 localhost> 
        !            45: \b make\
        !            46: 
        !            47: \f0\b0         \
        !            48: 3)  Run 
        !            49: \b make
        !            50: \b0  in the 
        !            51: \b User
        !            52: \b0  directory.  \
        !            53:        
        !            54: \f1 localhost> 
        !            55: \b cd ../User\
        !            56:        
        !            57: \b0 localhost> 
        !            58: \b make
        !            59: \b0 \
        !            60: 
        !            61: \f0 \
        !            62: \
        !            63: To use the user program:\
        !            64: \
        !            65: 1)  Allocate the loadable kernel server.  It loads automatically once it's allocated.\
        !            66:        
        !            67: \f1 localhost> 
        !            68: \b su\
        !            69: 
        !            70: \f0\b0         
        !            71: \f1 Password:\
        !            72:        localhost# 
        !            73: \b kl_util -a ../KernelServer/mydriver_reloc
        !            74: \b0 \
        !            75:        Adding server with relocatable /me/LKSOutOfLineData/User/..                     /KernelServer/mydriver_reloc\
        !            76:        Allocating server mydriver\
        !            77:        Server mydriver linking /me/LKSOutOfLineData/User/..\
        !            78:                /KernelServer/mydriver_reloc against /mach\
        !            79:        Server mydriver linking relocatable "/me/LKSOutOfLineData/User/..\
        !            80:                /KernelServer/mydriver_reloc" into loadable "/me/\
        !            81:                LKSOutOfLineData/User/../KernelServer/mydriver_loadable"\
        !            82:        Server mydriver Allocated\
        !            83:        localhost# \
        !            84: 
        !            85: \b \
        !            86: 
        !            87: \f0\b0 2)  Run the user program.  \
        !            88:        
        !            89: \f1 localhost# 
        !            90: \b ./test
        !            91: \b0 \
        !            92:        Data is: blah\
        !            93:        Calling mydriver_import().\
        !            94:        Calling mydriver_export().\
        !            95:        Trying to access data.\
        !            96:        First data element is: A\
        !            97:        Second data element is: C\
        !            98:        Third data element is: K\
        !            99:        Fourth data element is: \
        !           100:        Fifth data element is: \
        !           101:        Contents of data are: ACK\
        !           102: 
        !           103: \f0    \
        !           104: 3)  If you wish to modify the loadable kernel server and then reload it, you should delete the running version of the 
        !           105: \b kern_loader
        !           106: \b0  before allocating the kernel server again.\
        !           107: 
        !           108: \f1    localhost# 
        !           109: \b kl_util -d mydriver\
        !           110: 
        !           111: \b0    Server mydriver deallocating\
        !           112:        Server mydriver unloading\
        !           113:        Server mydriver re-Allocated\
        !           114:        Server mydriver Deallocated\
        !           115:        
        !           116: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.