예제 #1
0
파일: sfxge.c 프로젝트: Karamax/arrakis
int main(int argc, char *argv[])
{
    printf("starting sfxge driver\n");
    struct sfxge_softc *sc = NULL; // FIXME: allocate memory for this struct

    errval_t err = sfxge_create(sc);
    if (err_is_fail(err)) {
        printf("sfxge_create failed \n");
    }
    printf("sfxge_create done\n");
    return 0;
} // end function: main
예제 #2
0
파일: sfxge.c 프로젝트: AhmadTux/freebsd
static int
sfxge_attach(device_t dev)
{
	struct sfxge_softc *sc;
	struct ifnet *ifp;
	int error;

	sc = device_get_softc(dev);
	sc->dev = dev;

	/* Allocate ifnet. */
	ifp = if_alloc(IFT_ETHER);
	if (ifp == NULL) {
		device_printf(dev, "Couldn't allocate ifnet\n");
		error = ENOMEM;
		goto fail;
	}
	sc->ifnet = ifp;

	/* Initialize hardware. */
	if ((error = sfxge_create(sc)) != 0)
		goto fail2;

	/* Create the ifnet for the port. */
	if ((error = sfxge_ifnet_init(ifp, sc)) != 0)
		goto fail3;

	if ((error = sfxge_vpd_init(sc)) != 0)
		goto fail4;

	sc->init_state = SFXGE_REGISTERED;

	return (0);

fail4:
	sfxge_ifnet_fini(ifp);
fail3:
	sfxge_destroy(sc);

fail2:
	if_free(sc->ifnet);

fail:
	return (error);
}