Changeset 375


Ignore:
Timestamp:
2005-03-15T04:19:48+01:00 (13 years ago)
Author:
nbd
Message:

add txpwr with reg. override to wlc

Location:
trunk/openwrt/package/openwrt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/openwrt/package/openwrt/include/wlioctl.h

    r374 r375  
    563563#define WLC_GET_KEY                             44 
    564564#define WLC_SET_KEY                             45 
    565 #define WLC_GET_PASSIVE                         48 /* added by nbd */ 
    566 #define WLC_SET_PASSIVE                         49 /* added by nbd */ 
     565#define WLC_GET_PASSIVE                         48      /* added by nbd */ 
     566#define WLC_SET_PASSIVE                         49      /* added by nbd */ 
    567567#define WLC_SCAN                                50 
    568568#define WLC_SCAN_RESULTS                        51 
  • trunk/openwrt/package/openwrt/wlc/wlc.c

    r374 r375  
    2525#include <wlutils.h> 
    2626 
     27int _argc; 
     28char **_argv; 
     29 
     30void qtxpwr() { 
     31        int i = 0; 
     32                 
     33        if (_argc > 3) { 
     34                if (_argv[3][0] == '@') { 
     35                        i = atoi(_argv[3] + 1); 
     36                        i |= 0x80000000; 
     37                } else { 
     38                        i = atoi(_argv[3]); 
     39                } 
     40                wl_set_val(_argv[1], "qtxpower", &i, sizeof(i)); 
     41        } else { 
     42                wl_get_val(_argv[1], "qtxpower", &i, sizeof(i)); 
     43                if ((i & 0x80000000) == 0x80000000) 
     44                        printf("@"); 
     45                printf("%d\n", i & 0x7ffffff); 
     46        } 
     47} 
     48 
     49 
    2750struct wl_config { 
    2851        char *name, *desc; 
     
    3457        int get, set; 
    3558        int r1, r2; 
    36         char *data; 
     59        void *handler; 
    3760}; 
    3861 
    3962struct wl_config commands[] = { 
    4063        {"txpwr", "transmit power (in mW)", INT, WLC_GET_TXPWR, WLC_SET_TXPWR, 0, 255, NULL}, 
     64        {"qtxpwr", "\ttransmit power (in qdbm)\n\t\t\t\"@\" before value means regulatory override", OTHER, 0, 0, 0, 0, qtxpwr}, 
    4165        {"promisc", "promiscuous mode", BOOL, WLC_GET_PROMISC, WLC_SET_PROMISC, 0, 0, NULL}, 
    4266        {"monitor", "monitor mode", BOOL, WLC_GET_MONITOR, WLC_SET_MONITOR, 0, 0, NULL}, 
     
    4670        {"antdiv", "rx antenna diversity (0 = antenna 0, 1 = antenna 1, 3 = auto select)", INT, WLC_GET_ANTDIV, WLC_SET_ANTDIV, 0, 3, NULL}, 
    4771        {"txant", "set tx antenna (0 = antenna 0, 1 = antenna 1, 3 = rx antenna)", INT, WLC_GET_TXANT, WLC_SET_TXANT, 0, 3, NULL}, 
     72        {"wet", "wireless ethernet bridging mode", BOOL, WLC_GET_WET, WLC_SET_WET, 0, 0, NULL}, 
    4873        {"channel", "set channel", INT, WLC_GET_CHANNEL, WLC_SET_CHANNEL, 1, 14, NULL}, 
    4974        {NULL, NULL, 0, 0, 0, 0, 0, NULL} 
     
    6994        struct wl_config *cmd;  
    7095        int i; 
    71          
     96 
     97        _argc = argc; 
     98        _argv = argv; 
     99 
    72100        if (argc < 3) { 
    73101                fprintf(stderr, "Usage: %s <interface> <command> [...]\n\n", argv[0]); 
     
    110138                        wl_ioctl(argv[1], ioctl, &i, sizeof(i)); 
    111139                        fprintf(stderr, "new value = 0x%x (%d)\n", i, i); 
     140                } else if (strcmp(argv[3], "intval") == 0) { 
     141                        i = 0; 
     142                        fprintf(stderr, "var = \"%s\"\nold value = 0x%x (%d)\n", argv[4], i, i); 
     143                        if (argc > 5) { 
     144                                i = atoi(argv[5]); 
     145                                wl_set_val(argv[1], argv[4], &i, sizeof(i)); 
     146                        } else { 
     147                                wl_get_val(argv[1], argv[4], &i, sizeof(i)); 
     148                        } 
     149                        fprintf(stderr, "new value = 0x%x (%d)\n", i, i); 
    112150                } 
    113151                return 0; 
     
    125163                                        } 
    126164                                break; 
     165                                case OTHER: { 
     166                                        void (*handler)(void) = cmd->handler; 
     167                                        handler(); 
     168                                } 
     169                                break; 
    127170                        } 
    128171                } 
Note: See TracChangeset for help on using the changeset viewer.