Esempio n. 1
0
int
listObserverAttach(LIST_OBSERVER_T *observer, LIST_T *list)
{
    int cc;

    if (! list->allowObservers) {
        listerrno = (int) LIST_ERR_NOOBSVR;
        return -1;
    }

    cc = listInsertEntryBefore(list->observers,
                               (LIST_ENTRY_T *)list->observers,
                               (LIST_ENTRY_T *)observer);
    if (cc < 0)
        return cc;

    observer->list = list;

    return 0;
}
Esempio n. 2
0
/* listInsertEntryAtBack()
 *
 * before:
 *
 * L->1->2->3
 *
 * after:
 *
 * L->1->2->3->4
 *
 */
int
listInsertEntryAtBack(LIST_T * list, LIST_ENTRY_T *entry)
{
    return listInsertEntryBefore(list, (LIST_ENTRY_T *)list, entry);
}
Esempio n. 3
0
/* listInsertEntryAtFront()
 *
 * Push items in from of the list:
 *
 * before:
 *
 * L->3->2->1
 *
 * after:
 *
 * L->4->3->2->1
 *
 */
int
listInsertEntryAtFront(LIST_T * list, LIST_ENTRY_T *entry)
{
    return listInsertEntryBefore(list, list->forw, entry);
}
Esempio n. 4
0
int
listInsertEntryAfter(LIST_T * list, LIST_ENTRY_T *pred, LIST_ENTRY_T *entry)
{
    return listInsertEntryBefore(list, pred->forw, entry);

}