1137 crb_win_lock(adapter);
1138 netxen_nic_pci_set_crbwindow_2M(adapter, &off);
1139 }
1140
1141 DPRINTK(1, INFO, "read from offset %lx, len=%d\n", off, len);
1142
1143 switch (len) {
1144 case 1:
1145 *(uint8_t *)data = readb((void *)off);
1146 break;
1147 case 2:
1148 *(uint16_t *)data = readw((void *)off);
1149 break;
1150 case 4:
1151 *(uint32_t *)data = readl((void *)off);
1152 break;
1153 case 8:
1154 *(uint64_t *)data = readq((void *)off);
1155 break;
1156 default:
1157 break;
1158 }
1159
1160 DPRINTK(1, INFO, "read %lx\n", *(unsigned long *)data);
1161
1162 if (rv == 1) {
1163 crb_win_unlock(adapter);
1164 write_unlock_irqrestore(&adapter->adapter_lock, flags);
1165 }
1166
1167 return 0;
1168}
1169
1170void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val)
1171{
1172 adapter->hw_write_wx(adapter, off, &val, 4);
1173}
1174
1175int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off)
1176{
1177 int val;