int diag_smd_init(void) { uint8_t peripheral; struct diag_smd_info *smd_info = NULL; for (peripheral = 0; peripheral < NUM_PERIPHERALS; peripheral++) { smd_info = &smd_cntl[peripheral]; __diag_smd_init(smd_info); diagfwd_cntl_register(TRANSPORT_SMD, smd_info->peripheral, (void *)smd_info, &smd_ops, &smd_info->fwd_ctxt); smd_info->inited = 1; __diag_smd_init(&smd_data[peripheral]); __diag_smd_init(&smd_cmd[peripheral]); __diag_smd_init(&smd_dci[peripheral]); __diag_smd_init(&smd_dci_cmd[peripheral]); } platform_driver_register(&diag_smd_cntl_driver); platform_driver_register(&diag_smd_lite_cntl_driver); platform_driver_register(&diag_smd_ch_driver); platform_driver_register(&diag_smd_lite_driver); platform_driver_register(&diag_smd_lite_cmd_driver); platform_driver_register(&diag_smd_dci_driver); platform_driver_register(&diag_smd_dci_cmd_driver); return 0; }
int diag_socket_init(void) { int peripheral = 0; int err = 0; struct diag_socket_info *info = NULL; for (peripheral = 0; peripheral < NUM_PERIPHERALS; peripheral++) { info = &socket_cntl[peripheral]; __diag_socket_init(&socket_cntl[peripheral]); diagfwd_cntl_register(TRANSPORT_SOCKET, peripheral, (void *)info, &socket_ops, &(info->fwd_ctxt)); __diag_socket_init(&socket_data[peripheral]); __diag_socket_init(&socket_cmd[peripheral]); __diag_socket_init(&socket_dci[peripheral]); __diag_socket_init(&socket_dci_cmd[peripheral]); } err = __diag_cntl_socket_init(); if (err) goto fail; return 0; fail: return err; }