llvm/libc/include/llvm-libc-macros/sys-queue-macros.h

//===-- Macros defined in sys/queue.h header file -------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_LIBC_MACROS_SYS_QUEUE_MACROS_H
#define LLVM_LIBC_MACROS_SYS_QUEUE_MACROS_H

#include "llvm-libc-macros/containerof-macro.h"
#include "llvm-libc-macros/null-macro.h"

#ifdef __cplusplus
#define QUEUE_TYPEOF(type)
#else
#define QUEUE_TYPEOF
#endif

// Singly-linked list definitions.

#define SLIST_HEAD(name, type)

#define SLIST_CLASS_HEAD(name, type)

#define SLIST_HEAD_INITIALIZER(head)

#define SLIST_ENTRY(type)

#define SLIST_CLASS_ENTRY(type)

// Singly-linked list access methods.

#define SLIST_EMPTY(head)
#define SLIST_FIRST(head)
#define SLIST_NEXT(elem, field)

#define SLIST_FOREACH(var, head, field)

#define SLIST_FOREACH_FROM(var, head, field)

#define SLIST_FOREACH_SAFE(var, head, field, tvar)

#define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar)

// Singly-linked list functions.

#define SLIST_CONCAT(head1, head2, type, field)

#define SLIST_INIT(head)

#define SLIST_INSERT_AFTER(slistelem, elem, field)

#define SLIST_INSERT_HEAD(head, elem, field)

#define SLIST_REMOVE(head, elem, type, field)

#define SLIST_REMOVE_AFTER(elem, field)

#define SLIST_REMOVE_HEAD(head, field)

#define SLIST_SWAP(head1, head2, type)

// Singly-linked tail queue definitions.

#define STAILQ_HEAD(name, type)

#define STAILQ_CLASS_HEAD(name, type)

#define STAILQ_HEAD_INITIALIZER(head)

#define STAILQ_ENTRY(type)

#define STAILQ_CLASS_ENTRY(type)

// Singly-linked tail queue access methods.

#define STAILQ_EMPTY(head)
#define STAILQ_FIRST(head)
#define STAILQ_LAST(head, type, field)
#define STAILQ_NEXT(elem, field)

#define STAILQ_FOREACH(var, head, field)

#define STAILQ_FOREACH_FROM(var, head, field)

#define STAILQ_FOREACH_SAFE(var, head, field, tvar)

#define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar)

// Singly-linked tail queue functions.

#define STAILQ_CONCAT(head1, head2, type, field)

#define STAILQ_INIT(head)

#define STAILQ_INSERT_AFTER(head, listelem, elem, field)

#define STAILQ_INSERT_HEAD(head, elem, field)

#define STAILQ_INSERT_TAIL(head, elem, field)

#define STAILQ_REMOVE(head, elem, type, field)

#define STAILQ_REMOVE_AFTER(head, elem, field)

#define STAILQ_REMOVE_HEAD(head, field)

#define STAILQ_SWAP(head1, head2, type)

#endif // LLVM_LIBC_MACROS_SYS_QUEUE_MACROS_H