summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibC/sys/prctl.cpp
blob: 88d0afcd360e749f120bad00ac8101795ceb2937 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <sys/prctl.h>
#include <syscall.h>

extern "C" {

int prctl(int option, ...)
{
    va_list args;
    va_start(args, option);

    uintptr_t arg1 = va_arg(args, uintptr_t);
    uintptr_t arg2 = va_arg(args, uintptr_t);

    va_end(args);

    int rc = syscall(SC_prctl, option, arg1, arg2);
    __RETURN_WITH_ERRNO(rc, rc, -1);
}
}