1# zx_event_create
2
3## NAME
4
5event_create - create an event
6
7## SYNOPSIS
8
9```
10#include <zircon/syscalls.h>
11
12zx_status_t zx_event_create(uint32_t options, zx_handle_t* out);
13```
14
15## DESCRIPTION
16
17**event_create**() creates an event, which is an object that is signalable. That
18is, its *ZX_USER_SIGNAL_n* (where *n* is 0 through 7) signals can be
19manipulated using **object_signal**().
20
21The newly-created handle will have the *ZX_RIGHT_TRANSFER*, *ZX_RIGHT_DUPLICATE*,
22*ZX_RIGHT_READ*, *ZX_RIGHT_WRITE*, and *ZX_RIGHT_SIGNAL* rights.
23
24## RIGHTS
25
26TODO(ZX-2399)
27
28## RETURN VALUE
29
30**event_create**() returns ZX_OK and a valid event handle (via *out*) on success.
31On failure, an error value is returned.
32
33## ERRORS
34
35**ZX_ERR_INVALID_ARGS**  *out* is an invalid pointer, or *options* is nonzero.
36
37**ZX_ERR_NO_MEMORY**  Failure due to lack of memory.
38There is no good way for userspace to handle this (unlikely) error.
39In a future build this error will no longer occur.
40
41## SEE ALSO
42
43[eventpair_create](eventpair_create.md),
44[handle_close](handle_close.md),
45[handle_duplicate](handle_duplicate.md),
46[object_wait_one](object_wait_one.md),
47[object_wait_many](object_wait_many.md),
48[handle_replace](handle_replace.md),
49[object_signal](object_signal.md).
50