X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=usb%2Fcore%2Fcore.c;h=97acc56a57be1e7a66d1b0fbded801c2396e6540;hb=f80a808bafef8020c6d97d33cdf3cc613a70912b;hp=889fba452ba63d9148c88a5c4f427ba13d0d85d2;hpb=505298a9ae4bdce58a448aea253f7bf24b069406;p=ppcskel.git diff --git a/usb/core/core.c b/usb/core/core.c index 889fba4..97acc56 100644 --- a/usb/core/core.c +++ b/usb/core/core.c @@ -120,37 +120,26 @@ struct usb_device *usb_add_device(u8 lowspeed, u32 reg) if(ret < 0) { return (void*) -1; } - -#define WTF +// +//#define WTF #ifdef WTF - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lollllool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lololoololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lollllool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lololoololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lollllool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lololoololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lollllool PADDING WTF :O lolololololo \n"); - printf("lolololool PADDING WTF :O lolololololo \n"); - printf("lololololool PADDING WTF :O lolololololo \n"); - printf("lollllool PADDING WTF :O lolololololo \n"); + volatile u8 wzf = 11; + if(0 == wzf) { + printf("WTF WTF WTF WTF padding??? WTFWTF WTF\n"); + printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n"); + printf("WTF TF WTF WTF padding??? WTF WTF WTF\n"); + printf("WTF WTF TF WTF padding??? WTF WTWTF\n"); + printf("TF WTF WTF WTF padding??? WTF WTF WTF\n"); + printf("WTF WTF WTF WT padding??? WTF WF WTF\n"); + printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n"); + printf("WTF WTF WTF WTF padding??? WT WTF WTF\n"); + printf("WTF WTF WTF WTF pdding??? WTF WTF WTF\n"); + printf("WTF WTF WTF WTF paddin??? WTF WTF WTF\n"); + printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n"); + printf("WTF WTF WTF WTF padding?? WT WTF WTF\n"); + printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n"); + printf("WTF WTF WTF WTF padding??? WTFWTF WTF\n"); + } #endif u8 address = usb_next_address(); ret = usb_set_address(dev, address); @@ -243,12 +232,27 @@ void lsusb(struct usb_device *dev) * Find currently detached device and remove * data structures */ -u8 usb_remove_device(struct usb_device * dev) +u8 usb_remove_device(struct usb_device *dev) { - // FIXME!!!! dieser quatsch ist nur temporaer - free(core.devices->head); - free(core.devices); - core.devices = list_create(); + /* trigger driver for this device */ + struct usb_driver *drv; + struct element *iterator = core.drivers->head; + while (iterator != NULL) { + drv = (struct usb_driver *) iterator->data; + if(drv->data && !memcmp(drv->data, dev, sizeof(struct usb_device))) { + drv->remove(); + break; + } + iterator = iterator->next; + } + + /* remove from device list */ + struct element *tmp = (struct element *) malloc(sizeof(struct element)); + tmp->data = (void *) dev; + list_delete_element(core.devices, tmp); + + printf("REMOVED\n"); + return 1; }