Annotation of coherent/d/conf/old_tboot/bar, revision 1.1

1.1     ! root        1:  * To pass a new data structure into the kernel:
        !             2:  *
        !             3:  * 1. Define your new data structure in typed.h.  You will probably want
        !             4:  *    to define some supporting routines for your data structure.  These
        !             5:  *    should go in a file by themselves.  Be sure to add the file to the
        !             6:  *    tboot Makefile.
        !             7:  * 
        !             8:  * 2. Write a routine that takes at least an ffp, which will generate your
        !             9:  *    data structure and write it into the ffp.  The routine should return 0
        !            10:  *    if it ran out of space in the FIFO.  Other return values are permissible,
        !            11:  *    but ignored.  Add arguments to prepare_gift() as needed.  It is called
        !            12:  *    only from the end of main() in tboot.c
        !            13:  *
        !            14:  * 3. Add a call to your routine to prepare_gift() in the section marked
        !            15:  *    FILL THE BOX.  This is an if statement with || seperated calls.  The
        !            16:  *    most important data structures should be called first, because later
        !            17:  *    calls will be skipped if the FIFO fills.
        !            18:  *
        !            19:  * 4. In the kernel (probably in a driver) you will want to add a loop to
        !            20:  *    look through the gift for your data structure:
        !            21:  *
        !            22:  *    FIFO *ffp;
        !            23:  *    typed_space *tp;
        !            24:  *
        !            25:  *    ffp = fifo_open(&boot_gift, 0);  -- Open gift for reading. 
        !            26:  * 
        !            27:  *    if (F_NULL == ffp) {
        !            28:  *       indicate_error("Could not open boot_gift.");
        !            29:  *    } else {
        !            30:  *        while (T_NULL != (tp = fifo_read(ffp))) {    -- While not EOFIFO.
        !            31:  *           if (T_MYTYPE == tp->ts_type) {    -- Is this my type?
        !            32:  *               my_handler(tp->ts_data);      -- Process the data.
        !            33:  *           }
        !            34:  *        }
        !            35:  *    }
        !            36:  *
        !            37:  *    Be sure to include fifo_k.c and typed.h into your kernel.
        !            38: 
        !            39: 
        !            40: gift_drive_params
        !            41: 
        !            42: gift_argf
        !            43:  * To read gift_argf from bootgift, use the procedure outlined above in
        !            44:  * point 4 to find the entry marked T_STR_ARGF.  You must then explicitly
        !            45:  * recast it with RETYPE(tp->ts_data, T_FIFO_SIC).  Then you can open it
        !            46:  * as a FIFO, with code modeled on point 4 above.  This scheme seemed
        !            47:  * the simplest for uniquely identifying the argument FIFO.
        !            48:  * Each element of the FIFO is a T_STR_STR, so ts_data for these is
        !            49:  * just a NUL terminated string.
        !            50: 
        !            51: gift_rootdev

unix.superglobalmegacorp.com

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