xref: /aosp_15_r20/external/ethtool/vioc.c (revision 1b481fc3bb1b45d4cf28d1ec12969dc1055f555d)
1*1b481fc3SMaciej Żenczykowski /* Copyright 2006 Fabric7 Systems, Inc */
2*1b481fc3SMaciej Żenczykowski 
3*1b481fc3SMaciej Żenczykowski #include <stdio.h>
4*1b481fc3SMaciej Żenczykowski #include <stdlib.h>
5*1b481fc3SMaciej Żenczykowski #include "internal.h"
6*1b481fc3SMaciej Żenczykowski 
7*1b481fc3SMaciej Żenczykowski struct regs_line {
8*1b481fc3SMaciej Żenczykowski 		u32	addr;
9*1b481fc3SMaciej Żenczykowski 		u32	data;
10*1b481fc3SMaciej Żenczykowski };
11*1b481fc3SMaciej Żenczykowski 
12*1b481fc3SMaciej Żenczykowski #define VIOC_REGS_LINE_SIZE	sizeof(struct regs_line)
13*1b481fc3SMaciej Żenczykowski 
vioc_dump_regs(struct ethtool_drvinfo * info __maybe_unused,struct ethtool_regs * regs)14*1b481fc3SMaciej Żenczykowski int vioc_dump_regs(struct ethtool_drvinfo *info __maybe_unused,
15*1b481fc3SMaciej Żenczykowski 		   struct ethtool_regs *regs)
16*1b481fc3SMaciej Żenczykowski {
17*1b481fc3SMaciej Żenczykowski 	unsigned int	i;
18*1b481fc3SMaciej Żenczykowski 	unsigned int	num_regs;
19*1b481fc3SMaciej Żenczykowski 	struct regs_line *reg_info = (struct regs_line *) regs->data;
20*1b481fc3SMaciej Żenczykowski 
21*1b481fc3SMaciej Żenczykowski 	printf("ethtool_regs\n"
22*1b481fc3SMaciej Żenczykowski 		"%-20s = %04x\n"
23*1b481fc3SMaciej Żenczykowski 		"%-20s = %04x\n",
24*1b481fc3SMaciej Żenczykowski 		"cmd", regs->cmd,
25*1b481fc3SMaciej Żenczykowski 		"version", regs->version);
26*1b481fc3SMaciej Żenczykowski 
27*1b481fc3SMaciej Żenczykowski 	num_regs = regs->len/VIOC_REGS_LINE_SIZE;
28*1b481fc3SMaciej Żenczykowski 
29*1b481fc3SMaciej Żenczykowski 	for (i = 0; i < num_regs; i++){
30*1b481fc3SMaciej Żenczykowski 		printf("%08x = %08x\n", reg_info[i].addr, reg_info[i].data);
31*1b481fc3SMaciej Żenczykowski 	}
32*1b481fc3SMaciej Żenczykowski 
33*1b481fc3SMaciej Żenczykowski 	return 0;
34*1b481fc3SMaciej Żenczykowski }
35