int rtems_bsd_command_ifconfig(int argc, char *argv[]) { int exit_code; rtems_bsd_program_lock(); ifconfig_ctor(); atalk_ctor(); bridge_ctor(); carp_ctor(); clone_ctor(); gif_ctor(); gre_ctor(); group_ctor(); ifmedia_ctor(); inet_ctor(); inet6_ctor(); lagg_ctor(); link_ctor(); mac_ctor(); pfsync_ctor(); vlan_ctor(); exit_code = rtems_bsd_program_call_main("ifconfig", main, argc, argv); clone_dtor(); ifconfig_dtor(); rtems_bsd_program_unlock(); return exit_code; }
int rtems_bsd_command_wpa_supplicant(int argc, char **argv) { int exit_code; rtems_bsd_wpa_supplicant_lock(); exit_code = rtems_bsd_program_call_main("wpa_supplicant", main, argc, argv); rtems_bsd_wpa_supplicant_unlock(); return (exit_code); }
int rtems_bsd_program_call_main_with_data_restore(const char *name, int (*main)(int, char **), int argc, char **argv, void *data_buf, const size_t data_size) { int exit_code = EXIT_FAILURE; void *savebuf; savebuf = malloc(data_size); if (savebuf == NULL) { errno = ENOMEM; exit_code = EXIT_FAILURE; } else { memcpy(savebuf, data_buf, data_size); exit_code = rtems_bsd_program_call_main(name, main, argc, argv); memcpy(data_buf, savebuf, data_size); free(savebuf); } return exit_code; }