Changeset ce2262e in rtems-libbsd


Ignore:
Timestamp:
Oct 12, 2017, 12:16:09 PM (22 months ago)
Author:
Sichen Zhao <1473996754@…>
Branches:
5283630d2c9d40deb0183696d278e02644fe4326, bc2ba9a9cdc7381c2a4f2ae6ee303be636f31368
Children:
ee0c369
Parents:
0aa7e63
git-author:
Sichen Zhao <1473996754@…> (10/12/17 12:16:09)
git-committer:
Sebastian Huber <sebastian.huber@…> (11/10/17 12:33:03)
Message:

Add wpa_supplicant_fork command.

Add fork command for wpa supplicant to start a new task.

Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • freebsd/contrib/wpa/wpa_supplicant/main.c

    r0aa7e63 rce2262e  
    2323#include <assert.h>
    2424#include <sys/mutex.h>
     25#define RTEMS_BSD_PROGRAM_NO_MALLOC_WRAP
     26#define RTEMS_BSD_PROGRAM_NO_STRDUP_WRAP
    2527#include <machine/rtems-bsd-program.h>
    2628#endif /* __rtems__ */
     
    175177        return exit_code;
    176178}
     179
     180struct myparams {
     181        int argc;
     182        char ** argv;
     183};
     184
     185static void
     186new_wpa_supplicant_task(rtems_task_argument arg)
     187{
     188        int argc;
     189        char ** argv;
     190        int i;
     191
     192        struct myparams *params = (struct myparams *)arg;
     193        argc = params->argc;
     194        argv = params->argv;
     195
     196        rtems_bsd_command_wpa_supplicant(argc, argv);
     197
     198        for (i = 0; i < params->argc; i++) {
     199                free(params->argv[i]);
     200        }
     201        free(params->argv);
     202        free(params);
     203
     204        rtems_task_delete( RTEMS_SELF );
     205}
     206
     207int rtems_bsd_command_wpa_supplicant_fork(int argc, char **argv)
     208{
     209        rtems_status_code sc;
     210        rtems_id id;
     211        int i;
     212
     213        struct myparams *params = malloc(sizeof(struct myparams));
     214        if (params == NULL)
     215                return NULL;
     216
     217        params->argc = argc;
     218        params->argv = malloc((argc + 1) * sizeof(argv[0]));
     219        if (params->argv == NULL)
     220                return NULL;
     221
     222        for (i = 0; i < argc; i++) {
     223                params->argv[i] = strdup(argv[i]);
     224                if (params->argv[i] == NULL)
     225                        return NULL;
     226        }
     227        params->argv[argc] = NULL;
     228
     229        sc = rtems_task_create(
     230                rtems_build_name('W', 'P', 'A', 'S'),
     231                RTEMS_MAXIMUM_PRIORITY - 1,
     232                8 * RTEMS_MINIMUM_STACK_SIZE,
     233                RTEMS_DEFAULT_MODES,
     234                RTEMS_FLOATING_POINT,
     235                &id
     236        );
     237        assert(sc == RTEMS_SUCCESSFUL);
     238
     239        sc = rtems_task_start(id, new_wpa_supplicant_task, params);
     240        assert(sc == RTEMS_SUCCESSFUL);
     241}
    177242#endif /* __rtems__ */
    178243
  • libbsd.py

    r0aa7e63 rce2262e  
    42794279            'rtems/rtems-bsd-shell-wpa_supplicant.c',
    42804280            'rtems/rtems-wpa_supplicant_mutex.c',
     4281            'rtems/rtems-bsd-shell-wpa_supplicant_fork.c',
    42814282        ],
    42824283        mm.generator['source']()
  • libbsd_waf.py

    r0aa7e63 rce2262e  
    23262326              'rtemsbsd/rtems/rtems-bsd-shell-wlanstats.c',
    23272327              'rtemsbsd/rtems/rtems-bsd-shell-wpa_supplicant.c',
     2328              'rtemsbsd/rtems/rtems-bsd-shell-wpa_supplicant_fork.c',
    23282329              'rtemsbsd/rtems/rtems-bsd-syscall-api.c',
    23292330              'rtemsbsd/rtems/rtems-kernel-assert.c',
  • rtemsbsd/include/machine/rtems-bsd-commands.h

    r0aa7e63 rce2262e  
    6565int rtems_bsd_command_wpa_supplicant(int argc, char **argv);
    6666
     67int rtems_bsd_command_wpa_supplicant_fork(int argc, char **argv);
     68
    6769int rtems_bsd_command_tcpdump(int argc, char **argv);
    6870
  • rtemsbsd/include/rtems/netcmds-config.h

    r0aa7e63 rce2262e  
    4242extern rtems_shell_cmd_t rtems_shell_WPA_SUPPLICANT_Command;
    4343
     44extern rtems_shell_cmd_t rtems_shell_WPA_SUPPLICANT_FORK_Command;
     45
    4446extern rtems_shell_cmd_t rtems_shell_SYSCTL_Command;
    4547
  • testsuite/media01/test_main.c

    r0aa7e63 rce2262e  
    211211  &rtems_shell_IFCONFIG_Command, \
    212212  &rtems_shell_VMSTAT_Command, \
    213   &rtems_shell_WPA_SUPPLICANT_Command
     213  &rtems_shell_WPA_SUPPLICANT_Command, \
     214  &rtems_shell_WPA_SUPPLICANT_FORK_Command
    214215
    215216#define CONFIGURE_SHELL_COMMAND_CPUINFO
Note: See TracChangeset for help on using the changeset viewer.