Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/root/root.c

    reff1f033 r6f9e7fea  
    4646#include <ctype.h>
    4747#include <macros.h>
    48 #include <inttypes.h>
    49 #include <sysinfo.h>
    5048
    5149#include <driver.h>
     
    5654
    5755#define PLATFORM_DEVICE_NAME "hw"
    58 #define PLATFORM_DEVICE_MATCH_ID_FMT "platform/%s"
     56#define PLATFORM_DEVICE_MATCH_ID STRING(UARCH)
    5957#define PLATFORM_DEVICE_MATCH_SCORE 100
    6058
     
    10098static int add_platform_child(device_t *parent)
    10199{
    102         char *match_id;
    103         char *platform;
    104         size_t platform_size;
    105         int res;
    106 
    107         /* Get platform name from sysinfo. */
    108 
    109         platform = sysinfo_get_data("platform", &platform_size);
    110         if (platform == NULL) {
    111                 printf(NAME ": Failed to obtain platform name.\n");
    112                 return ENOENT;
    113         }
    114 
    115         /* Null-terminate string. */
    116         platform = realloc(platform, platform_size + 1);
    117         if (platform == NULL) {
    118                 printf(NAME ": Memory allocation failed.\n");
    119                 return ENOMEM;
    120         }
    121 
    122         platform[platform_size] = '\0';
    123 
    124         /* Construct match ID. */
    125 
    126         if (asprintf(&match_id, PLATFORM_DEVICE_MATCH_ID_FMT, platform) == -1) {
    127                 printf(NAME ": Memory allocation failed.\n");
    128                 return ENOMEM;
    129         }
    130 
    131         /* Add child. */
    132 
    133100        printf(NAME ": adding new child for platform device.\n");
    134101        printf(NAME ":   device node is `%s' (%d %s)\n", PLATFORM_DEVICE_NAME,
    135             PLATFORM_DEVICE_MATCH_SCORE, match_id);
    136 
    137         res = child_device_register_wrapper(parent, PLATFORM_DEVICE_NAME,
    138             match_id, PLATFORM_DEVICE_MATCH_SCORE);
     102            PLATFORM_DEVICE_MATCH_SCORE, PLATFORM_DEVICE_MATCH_ID);
     103       
     104        int res = child_device_register_wrapper(parent, PLATFORM_DEVICE_NAME,
     105            PLATFORM_DEVICE_MATCH_ID, PLATFORM_DEVICE_MATCH_SCORE);
    139106
    140107        return res;
     
    148115static int root_add_device(device_t *dev)
    149116{
    150         printf(NAME ": root_add_device, device handle=%" PRIun "\n",
    151             dev->handle);
     117        printf(NAME ": root_add_device, device handle = %d\n", dev->handle);
    152118       
    153119        /*
Note: See TracChangeset for help on using the changeset viewer.