This chapter describes the NSPR API for managing linked lists. The API is a set of macros for initializing a circular (doubly linked) list, inserting and removing elements from the list. The macros are not thread safe. The caller must provide for mutually-exclusive access to the list, and for the nodes being added and removed from the list. - [Linked List Types](#Linked_List_Types) - [Linked List Macros](#Linked_List_Macros) (linked-list-types)= # Linked List Types The {ref}`PRCList` type represents a circular linked list. (linked-list-macros)= # Linked List Macros Macros that create and operate on linked lists are: > - {ref}`PR_INIT_CLIST` > - {ref}`PR_INIT_STATIC_CLIST` > - {ref}`PR_APPEND_LINK` > - {ref}`PR_INSERT_LINK` > - {ref}`PR_NEXT_LINK` > - {ref}`PR_PREV_LINK` > - {ref}`PR_REMOVE_LINK` > - {ref}`PR_REMOVE_AND_INIT_LINK` > - {ref}`PR_INSERT_BEFORE` > - {ref}`PR_INSERT_AFTER` > - {ref}`PR_CLIST_IS_EMPTY` > - {ref}`PR_LIST_HEAD` > - {ref}`PR_LIST_TAIL`