Ignore:
Timestamp:
2010-03-27T18:38:26+01:00 (6 years ago)
Author:
juhosg
Message:

firmware-utils/trx: add relative offset parameter

  • will be used for the WRT160NL board
  • patch by Bernhard Loos
  • note: rejected parts has been fixed
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/firmware-utils/src/trx.c

    r20433 r20522  
    8484{ 
    8585        fprintf(stderr, "Usage:\n"); 
    86         fprintf(stderr, " trx [-2] [-o outfile] [-m maxlen] [-a align] [-b offset] \\\n"); 
     86        fprintf(stderr, " trx [-2] [-o outfile] [-m maxlen] [-a align] [-b absolute offset] [-x relative offset]\n"); 
    8787        fprintf(stderr, "     [-f file] [-f file [-f file [-f file (v2 only)]]]\n"); 
    8888        exit(EXIT_FAILURE); 
     
    9898        int c, i, append = 0; 
    9999        size_t n; 
     100        ssize_t n2; 
    100101        uint32_t cur_len; 
    101102        unsigned long maxlen = TRX_MAX_LEN; 
     
    119120        i = 0; 
    120121 
    121         while ((c = getopt(argc, argv, "-:2o:m:a:b:f:A:")) != -1) { 
     122        while ((c = getopt(argc, argv, "-:2o:m:a:x:b:f:A:")) != -1) { 
    122123                switch (c) { 
    123124                        case '2': 
     
    219220                                        cur_len = n; 
    220221                                } 
     222                                break; 
     223                        case 'x': 
     224                                errno = 0; 
     225                                n2 = strtol(optarg, &e, 0); 
     226                                if (errno || (e == optarg) || *e) { 
     227                                        fprintf(stderr, "illegal numeric string\n"); 
     228                                        usage(); 
     229                                } 
     230                                if (n2 < 0) { 
     231                                        if (-n2 > cur_len) { 
     232                                                fprintf(stderr, "WARNING: current length smaller then -x %d offset\n",n2); 
     233                                                cur_len = 0; 
     234                                        } else 
     235                                                cur_len += n2; 
     236                                } else { 
     237                                        memset(buf + cur_len, 0, n2); 
     238                                        cur_len += n2; 
     239                                } 
     240 
    221241                                break; 
    222242                        default: 
Note: See TracChangeset for help on using the changeset viewer.