symbian-qemu-0.9.1-12/qemu-symbian-svp/devtree.c
branchphonesim-integ
changeset 36 a587897e3bb2
parent 1 2fb8b9db1c86
equal deleted inserted replaced
20:3bf560f85513 36:a587897e3bb2
    24 #include "qemu-common.h"
    24 #include "qemu-common.h"
    25 #include "sysemu.h"
    25 #include "sysemu.h"
    26 #include "devtree.h"
    26 #include "devtree.h"
    27 #include "hw/boards.h"
    27 #include "hw/boards.h"
    28 #include "libfdt/libfdt.h"
    28 #include "libfdt/libfdt.h"
       
    29 #include "qemu-char.h"
    29 
    30 
    30 #define BADF(fmt, args...) \
    31 #define BADF(fmt, args...) \
    31 do { fprintf(stderr, "error: " fmt , ##args); exit(1);} while (0)
    32 do { fprintf(stderr, "error: " fmt , ##args); exit(1);} while (0)
    32 
    33 
    33 /* Assume no device will ever need more than 4 register windows.  */
    34 /* Assume no device will ever need more than 4 register windows.  */
   411         int n;
   412         int n;
   412         propstr = fdt_getprop_string(dt, node, "chardev");
   413         propstr = fdt_getprop_string(dt, node, "chardev");
   413         if (propstr) {
   414         if (propstr) {
   414             i = sscanf(propstr, "serial%d", &n);
   415             i = sscanf(propstr, "serial%d", &n);
   415             if (i == 1 && n >= 0 && n < MAX_SERIAL_PORTS)
   416             if (i == 1 && n >= 0 && n < MAX_SERIAL_PORTS)
       
   417             {
       
   418                 if (!serial_hds[n])
       
   419                 {
       
   420                     const char* target = fdt_getprop_string(dt, node, "target");
       
   421                     if (target)
       
   422                         serial_hds[n] = qemu_chr_open(propstr, target);
       
   423                 }
   416                 d->chardev = serial_hds[n];
   424                 d->chardev = serial_hds[n];
       
   425             }
   417         }
   426         }
   418     }
   427     }
   419     find_properties(d);
   428     find_properties(d);
   420     d->dc->create(d);
   429     d->dc->create(d);
   421     if (dc->savevm_version) {
   430     if (dc->savevm_version) {