// Copyright 2019-2020 The Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/

[appendix]
[[error_other_misc_enums]]
= Other Miscellaneous Enums

This section lists other miscellaneous OpenCL enumerants and their meanings.

[cols="2,3",options="header",]
|====
| *Enumerant*
| *Brief Description*

| {CL_TRUE_anchor}

include::{generated}/api/version-notes/CL_TRUE.asciidoc[]
| Indicates a boolean "true" value.

| {CL_FALSE_anchor}

include::{generated}/api/version-notes/CL_FALSE.asciidoc[]
| Indicates a boolean "false" value.

| {CL_NONE_anchor}

include::{generated}/api/version-notes/CL_NONE.asciidoc[]
| Indicates that none of the other enumerations or conditions are applicable.

| {CL_BLOCKING_anchor}

include::{generated}/api/version-notes/CL_BLOCKING.asciidoc[]
| Alias of {CL_TRUE} that can be used to improve the readability of calls to
enqueue functions that can block.

| {CL_NON_BLOCKING_anchor}

include::{generated}/api/version-notes/CL_NON_BLOCKING.asciidoc[]
| Alias of {CL_FALSE} that can be used to improve the readability of calls to
enqueue function that can block.

|====
