/** Allocate a new device info node. * * @return pointer to the new node */ static DEV_PRINTER_DEVICE * fb_hListDevElemAlloc ( FB_LIST *list, const char *device, const char *printer_name ) { DEV_PRINTER_DEVICE *node = (DEV_PRINTER_DEVICE*) calloc( 1, sizeof(DEV_PRINTER_DEVICE) ); node->device = strdup(device); node->printer_name = strdup(printer_name); fb_hListDynElemAdd( list, &node->elem ); return node; }
/** Allocate a new list element. * * This function gets an element from the list of free elements * ( struct _FB_LIST::fhead ) and adds to the tail. It also increases the * number of used elements ( struct _FB_LIST::cnt ). * * @param list Pointer to the list structure. * * @return A new element. */ FB_LISTELEM *fb_hListAllocElem( FB_LIST *list ) { FB_LISTELEM *elem; /* take from free list */ elem = list->fhead; if( elem == NULL ) return NULL; list->fhead = elem->next; /* add to entry used list */ fb_hListDynElemAdd( list, elem ); return elem; }