"Fossies" - the Fresh Open Source Software Archive

Member "syslinux-6.03/com32/samples/advdump.c" (6 Oct 2014, 1313 Bytes) of package /linux/misc/syslinux-6.03.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /* ----------------------------------------------------------------------- *
    2  *
    3  *   Copyright 2007-2008 H. Peter Anvin - All Rights Reserved
    4  *
    5  *   This program is free software; you can redistribute it and/or modify
    6  *   it under the terms of the GNU General Public License as published by
    7  *   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
    8  *   Boston MA 02111-1307, USA; either version 2 of the License, or
    9  *   (at your option) any later version; incorporated herein by reference.
   10  *
   11  * ----------------------------------------------------------------------- */
   12 
   13 /*
   14  * advdump.c
   15  *
   16  * Dump the contents of the syslinux ADV
   17  */
   18 
   19 #include <stdio.h>
   20 #include <console.h>
   21 #include <syslinux/adv.h>
   22 #include <string.h>
   23 
   24 int main(void)
   25 {
   26     uint8_t *p, *ep;
   27     size_t s = syslinux_adv_size();
   28     char buf[256];
   29 
   30 #if 0
   31     /* this hangs! */
   32     openconsole(&dev_stdcon_r, &dev_stdcon_w);
   33 #else
   34     /* this works */
   35     openconsole(&dev_rawcon_r, &dev_ansiserial_w);
   36 #endif
   37 
   38     p = syslinux_adv_ptr();
   39 
   40     printf("ADV size: %zd bytes at %p\n", s, p);
   41 
   42     ep = p + s;         /* Need at least opcode+len */
   43     while (p < ep - 1 && *p) {
   44     int t = *p++;
   45     int l = *p++;
   46 
   47     if (p + l > ep)
   48         break;
   49 
   50     memcpy(buf, p, l);
   51     buf[l] = '\0';
   52 
   53     printf("ADV %3d: \"%s\"\n", t, buf);
   54 
   55     p += l;
   56     }
   57 
   58     return 0;
   59 }