diff --git a/src/libs/compat/freebsd_network/bus.c b/src/libs/compat/freebsd_network/bus.c index a8b721c5ef..b7b9a0d372 100644 --- a/src/libs/compat/freebsd_network/bus.c +++ b/src/libs/compat/freebsd_network/bus.c @@ -454,6 +454,22 @@ bus_generic_shutdown(device_t dev) } +int +bus_print_child_header(device_t dev, device_t child) +{ + UNIMPLEMENTED(); + return B_ERROR; +} + + +int +bus_print_child_footer(device_t dev, device_t child) +{ + UNIMPLEMENTED(); + return B_ERROR; +} + + int bus_generic_print_child(device_t dev, device_t child) { diff --git a/src/libs/compat/freebsd_network/compat.c b/src/libs/compat/freebsd_network/compat.c index da811cc354..febd146ba4 100644 --- a/src/libs/compat/freebsd_network/compat.c +++ b/src/libs/compat/freebsd_network/compat.c @@ -175,6 +175,35 @@ device_get_parent(device_t dev) } +int +device_get_children(device_t dev, device_t **devlistp, int *devcountp) +{ + int count; + device_t child = NULL; + device_t *list; + + count = 0; + while (list_get_next_item(&dev->children, child) != NULL) { + count++; + } + + list = malloc(count * sizeof(device_t)); + if (!list) + return (ENOMEM); + + count = 0; + while ((child = list_get_next_item(&dev->children, child)) != NULL) { + list[count] = child; + count++; + } + + *devlistp = list; + *devcountp = count; + + return (0); +} + + void device_set_ivars(device_t dev, void *ivars) { diff --git a/src/libs/compat/freebsd_network/compat/net/if_media.h b/src/libs/compat/freebsd_network/compat/net/if_media.h index e22134ad31..69b2459567 100644 --- a/src/libs/compat/freebsd_network/compat/net/if_media.h +++ b/src/libs/compat/freebsd_network/compat/net/if_media.h @@ -149,6 +149,8 @@ uint64_t ifmedia_baudrate(int); /* note 31 is the max! */ #define IFM_ETH_MASTER 0x00000100 /* master mode (1000baseT) */ +#define IFM_ETH_RXPAUSE 0x00000200 /* receive PAUSE frames */ +#define IFM_ETH_TXPAUSE 0x00000400 /* transmit PAUSE frames */ /* * Token ring