Lines Matching defs:l_state

467 l_get_disk_element_index(struct l_state_struct *l_state, int *front_index,
473 if ((l_state == NULL) || (front_index == NULL) ||
480 for (i = 0; i < (int)l_state->ib_tbl.config.enc_num_elem; i++) {
481 if (l_state->ib_tbl.config.type_hdr[i].type == ELM_TYP_DD) {
491 index += l_state->ib_tbl.config.type_hdr[i].num;
529 L_state *l_state;
557 if ((l_state = (L_state *)calloc(1, sizeof (L_state))) == NULL) {
566 (void) l_free_lstate(&l_state);
571 (void) l_free_lstate(&l_state);
575 if ((err = l_get_status(ses_path, l_state, verbose)) != 0) {
576 (void) l_free_lstate(&l_state);
582 if (err = l_get_slot(path_struct, l_state, verbose)) {
583 (void) l_free_lstate(&l_state);
593 (void) l_free_lstate(&l_state);
598 (void) l_free_lstate(&l_state);
605 (void) l_free_lstate(&l_state);
614 if (err = l_get_status(ses_path, l_state, verbose)) {
615 (void) l_free_lstate(&l_state);
622 if ((strncmp((char *)l_state->ib_tbl.config.prod_id, DAK_OFF_NAME,
624 (strncmp((char *)l_state->ib_tbl.config.prod_id, DAK_PROD_STR,
632 if (path_struct->slot >= l_state->total_num_drv/2) {
633 (void) l_free_lstate(&l_state);
637 if (err = l_get_disk_element_index(l_state, &front_index,
639 (void) l_free_lstate(&l_state);
646 rear_index += l_state->total_num_drv/2 + 1;
682 l_state->ib_tbl.enclosure_name);
687 l_state->ib_tbl.enclosure_name);
699 l_state->ib_tbl.enclosure_name);
705 l_state->ib_tbl.enclosure_name);
710 (void) l_free_lstate(&l_state);
725 (void) l_free_lstate(&l_state);
734 (void) l_free_lstate(&l_state);
747 (void) l_free_lstate(&l_state);
755 * frees the previously alloced l_state
763 l_free_lstate(L_state **l_state)
767 if ((l_state == NULL) || (*l_state == NULL))
770 for (i = 0; i < (int)(*l_state)->total_num_drv/2; i++) {
771 if ((*l_state)->drv_front[i].g_disk_state.multipath_list != NULL)
773 (*l_state)->drv_front[i].g_disk_state.multipath_list);
774 if ((*l_state)->drv_rear[i].g_disk_state.multipath_list != NULL)
776 (*l_state)->drv_rear[i].g_disk_state.multipath_list);
778 (void) g_destroy_data (*l_state);
779 l_state = NULL;
804 L_state *l_state = NULL;
844 if ((l_state = (L_state *)calloc(1, sizeof (L_state))) == NULL) {
848 if (err = l_get_status(ses_path, l_state, verbose)) {
849 (void) l_free_lstate(&l_state);
855 if (err = l_get_slot(path_struct, l_state, verbose)) {
856 (void) l_free_lstate(&l_state);
868 drive = &l_state->drv_front[slot];
870 drive = &l_state->drv_rear[slot];
877 (void) l_free_lstate(&l_state);
902 (void) l_free_lstate(&l_state);
908 (void) l_free_lstate(&l_state);
929 (void) l_free_lstate(&l_state);
938 (void) l_free_lstate(&l_state);
957 (void) l_free_lstate(&l_state);
964 err = pwr_up_down(ses_path, l_state, path_struct->f_flag,
972 (void) l_free_lstate(&l_state);
994 L_state *l_state = NULL;
1006 if ((l_state = (L_state *)calloc(1, sizeof (L_state))) == NULL) {
1009 if (err = l_get_status(path_phys, l_state, verbose)) {
1010 (void) l_free_lstate(&l_state);
1026 for (i = 0; i < l_state->total_num_drv/2; i++) {
1027 if ((l_state->drv_front[i].g_disk_state.d_state_flags[PORT_A] &
1029 (l_state->drv_front[i].g_disk_state.d_state_flags[PORT_B] &
1031 (l_state->drv_rear[i].g_disk_state.d_state_flags[PORT_A] &
1033 (l_state->drv_rear[i].g_disk_state.d_state_flags[PORT_B] &
1050 (void) l_free_lstate(&l_state);
1053 for (i = 0; i < l_state->total_num_drv/2; i++) {
1054 if (*l_state->drv_front[i].g_disk_state.physical_path) {
1057 (char *)&l_state->drv_front[i].g_disk_state.physical_path);
1062 (void) l_free_lstate(&l_state);
1095 (void) l_free_lstate(&l_state);
1106 if (*l_state->drv_rear[i].g_disk_state.physical_path) {
1109 (char *)&l_state->drv_rear[i].g_disk_state.physical_path);
1114 (void) l_free_lstate(&l_state);
1147 (void) l_free_lstate(&l_state);
1163 if ((err = pwr_up_down(path_phys, l_state, 0, -1,
1165 (void) l_free_lstate(&l_state);
1168 (void) l_free_lstate(&l_state);
1184 pwr_up_down(char *path_phys, L_state *l_state, int front, int slot,
1229 if (slot >= l_state->total_num_drv/2) {
1235 if (err = l_get_disk_element_index(l_state, &front_index,
1805 L_state *l_state = NULL;
1873 if ((l_state = (L_state *)g_zalloc(sizeof (L_state))) == NULL) {
1878 if ((err = l_get_ib_status(ses_path, l_state, verbose)) != 0) {
1880 (void) l_free_lstate(&l_state);
1884 if ((err = l_get_slot(*path_struct, l_state, verbose)) != 0) {
1886 (void) l_free_lstate(&l_state);
1891 (void) l_free_lstate(&l_state);
1940 L_state *l_state = NULL;
2112 if ((l_state = (L_state *)g_zalloc(sizeof (L_state))) == NULL) {
2118 if ((err = l_get_status(ses_path, l_state,
2121 (void) g_destroy_data(l_state);
2128 if (slot >= l_state->total_num_drv/2) {
2132 (void) l_free_lstate(&l_state);
2146 (void) l_free_lstate(&l_state);
2151 if (*l_state->drv_front[slot].g_disk_state.physical_path) {
2153 g_alloc_string(l_state->drv_front[slot].g_disk_state.physical_path);
2163 if (*l_state->drv_rear[slot].g_disk_state.physical_path) {
2165 g_alloc_string(l_state->drv_rear[slot].g_disk_state.physical_path);
2175 (void) l_free_lstate(&l_state);
2848 copy_config_page(struct l_state_struct *l_state, uchar_t *from_ptr)
2868 (void *)&l_state->ib_tbl.config, (size_t)size);
2875 (void *)&l_state->ib_tbl.config.type_hdr, (size_t)size);
2883 for (i = 0; i < (int)l_state->ib_tbl.config.enc_num_elem; i++) {
2884 size = l_state->ib_tbl.config.type_hdr[i].text_len;
2886 (void *)&l_state->ib_tbl.config.text[i], (size_t)size);
2904 copy_page_7(struct l_state_struct *l_state, uchar_t *from_ptr)
2910 sizeof (l_state->ib_tbl.p7_s.gen_code);
2912 (void *)&l_state->ib_tbl.p7_s, (size_t)size);
2916 (uchar_t *)&l_state->ib_tbl.p7_s, size,
2925 j < (int)l_state->ib_tbl.config.enc_num_elem; j++) {
2930 (void *)&l_state->ib_tbl.p7_s.element_desc[p7_index++],
2933 for (k = 0; k < (int)l_state->ib_tbl.config.type_hdr[j].num;
2940 (void *)&l_state->ib_tbl.p7_s.element_desc[p7_index++],
2970 l_get_ib_status(char *path, struct l_state_struct *l_state,
2980 if ((path == NULL) || (l_state == NULL)) {
3007 bcopy((void *)ib_buf, (void *)&l_state->ib_tbl.p0,
3010 num_pages = l_state->ib_tbl.p0.page_len;
3011 from_ptr = ib_buf + HEADER_LEN + l_state->ib_tbl.p0.page_len;
3014 if (l_state->ib_tbl.p0.sup_page_codes[i] == L_PAGE_1) {
3015 if (err = copy_config_page(l_state, from_ptr)) {
3018 } else if (l_state->ib_tbl.p0.sup_page_codes[i] ==
3023 (void *)&l_state->ib_tbl.p2_s, (size_t)size);
3026 (uchar_t *)&l_state->ib_tbl.p2_s, size,
3030 } else if (l_state->ib_tbl.p0.sup_page_codes[i] ==
3032 (void) copy_page_7(l_state, from_ptr);
3049 l_state->total_num_drv = 0; /* default to use as a flag */
3050 for (i = 0; i < (int)l_state->ib_tbl.config.enc_num_elem; i++) {
3051 if (l_state->ib_tbl.config.type_hdr[i].type == ELM_TYP_DD) {
3052 if (l_state->total_num_drv) {
3053 if (l_state->total_num_drv !=
3054 (l_state->ib_tbl.config.type_hdr[i].num * 2)) {
3059 l_state->total_num_drv =
3060 l_state->ib_tbl.config.type_hdr[i].num;
3062 l_state->total_num_drv =
3063 l_state->ib_tbl.config.type_hdr[i].num * 2;
3073 if (err = l_get_disk_element_index(l_state, &front_index,
3080 rear_index += l_state->total_num_drv/2 + 1;
3085 for (i = 0; i < l_state->total_num_drv/2; i++) {
3086 bcopy((void *)&l_state->ib_tbl.p2_s.element[front_index + i],
3087 (void *)&l_state->drv_front[i].ib_status,
3089 bcopy((void *)&l_state->ib_tbl.p2_s.element[rear_index + i],
3090 (void *)&l_state->drv_rear[i].ib_status,
3095 (uchar_t *)&l_state->ib_tbl.p2_s.element[front_index],
3096 ((sizeof (struct device_element)) * (l_state->total_num_drv)),
3806 * The struct l_state (which was passed in) has the status info
3813 l_get_status(char *path, struct l_state_struct *l_state, int verbose)
3828 if ((path == NULL) || (l_state == NULL)) {
3838 (void) memset(l_state, 0, sizeof (struct l_state_struct));
3850 (void) strncpy((char *)l_state->ib_tbl.enclosure_name,
3856 if (err = l_get_ib_status(path, l_state, verbose)) {
3897 l_state->ib_tbl.box_id = (select_id & BOX_ID_MASK) >> 5;
3987 for (i = 0, count = 0; i < l_state->total_num_drv/2;
3997 (struct l_disk_state_struct *)&l_state->drv_front[i],
3998 &l_state->ib_tbl, front_flag, o_list,
4007 for (i = 0; i < l_state->total_num_drv/2; i++) {
4008 l_state->drv_front[i].l_state_flag = L_NO_LOOP;
4013 * l_state->drv_front array
4015 * l_state->drv_rear array
4023 for (i = 0; i < l_state->total_num_drv/2; i++, count++) {
4027 (struct l_disk_state_struct *)&l_state->drv_rear[i],
4028 &l_state->ib_tbl, front_flag, o_list,
4036 for (i = 0; i < l_state->total_num_drv/2; i++, count++) {
4040 (struct l_disk_state_struct *)&l_state->drv_rear[i],
4041 &l_state->ib_tbl, front_flag, o_list,
4050 for (i = 0; i < l_state->total_num_drv/2; i++) {
4051 l_state->drv_rear[i].l_state_flag = L_NO_LOOP;
4854 l_get_slot(struct path_struct *path_struct, L_state *l_state, int verbose)
4860 if ((path_struct == NULL) || (l_state == NULL)) {
4889 for (slot = 0; slot < l_state->total_num_drv/2; slot++) {
4890 if (l_state->drv_front[slot].ib_status.sel_id ==
4895 } else if (l_state->drv_rear[slot].ib_status.sel_id ==
4905 if ((strncmp((char *)l_state->ib_tbl.config.prod_id, DAK_OFF_NAME,
4907 (strncmp((char *)l_state->ib_tbl.config.prod_id, DAK_PROD_STR,