21 u32 l = va_arg (*args,
u32);
22 u8 *v = va_arg (*args,
u8 *);
25 for (p = v + l - 1; p >= v && p[0] ==
' '; p--)
34 u32 id = va_arg (*args,
u32);
38 #define _(f,str) case SFP_ID_##f: t = str; break; 42 return format (s,
"unknown 0x%x",
id);
44 return format (s,
"%s", t);
54 #define _(a,b,f) case SFP_COMPATIBILITY_##f: t = #f; break; 58 return format (s,
"unknown 0x%x", c);
60 return format (s,
"%s", t);
71 #define _(a,b,f) { .byte = a, .bit = b, }, 89 s =
format (s,
"compatibility:");
94 s =
format (s,
"\n%Uvendor: %U, part %U",
100 format (s,
"\n%Urevision: %U, serial: %U, date code: %U",
static u8 * format_sfp_compatibility(u8 *s, va_list *args)
#define foreach_sfp_compatibility
static u8 * format_space_terminated(u8 *s, va_list *args)
#define vec_add(V, E, N)
Add N elements to end of vector V (no header, unspecified alignment)
u8 vendor_serial_number[16]
u8 vendor_part_number[16]
static u8 * format_sfp_id(u8 *s, va_list *args)
u32 sfp_is_comatible(sfp_eeprom_t *e, sfp_compatibility_t c)
u8 * format_sfp_eeprom(u8 *s, va_list *args)