# seccomp_syscall_resolve_name

## NAME



           seccomp_syscall_resolve_name - Resolve a syscall name
    


## SYNOPSIS



           **#include <seccomp.h>**
    
           **int seccomp_syscall_resolve_name(const char ***_name_**);**
           **int seccomp_syscall_resolve_name_arch(uint32_t** _arch_token_**,**
                                                 **const char ***_name_**);**
           **int seccomp_syscall_resolve_name_rewrite(uint32_t** _arch_token_**,**
                                                    **const char ***_name_**);**
           **char *seccomp_syscall_resolve_num_arch(uint32_t** _arch_token_**, int** _num_**);**
    
           Link with _-lseccomp_.
    


## DESCRIPTION



           The **seccomp_syscall_resolve_name()** ,
           **seccomp_syscall_resolve_name_arch()** , and
           **seccomp_syscall_resolve_name_rewrite()** functions resolve the
           commonly used syscall name to the syscall number used by the
           kernel and the rest of the libseccomp API, with
           **seccomp_syscall_resolve_name_rewrite()** rewriting the syscall
           number for architectures that modify the syscall.  Syscall
           rewriting typically happens in case of a multiplexed syscall, like
           socketcall(2) or ipc(2) on x86.
           **seccomp_syscall_resolve_num_arch()** function resolves the syscall
           number used by the kernel to the commonly used syscall name.
    
           The caller is responsible for freeing the returned string from
           **seccomp_syscall_resolve_num_arch()**.
    


## RETURN VALUE



           In the case of **seccomp_syscall_resolve_name()** ,
           **seccomp_syscall_resolve_name_arch()** , and
           **seccomp_syscall_resolve_name_rewrite()** the associated syscall
           number is returned, with the negative pseudo syscall number being
           returned in cases where the given syscall does not exist for the
           architecture.  The value **__NR_SCMP_ERROR** is returned in case of
           error.  In all cases, the return value is suitable for use in any
           libseccomp API function which requires the syscall number,
           examples include **seccomp_rule_add**() and **seccomp_rule_add_exact**().
    
           In the case of **seccomp_syscall_resolve_num_arch()** the associated
           syscall name is returned and it remains the callers responsibility
           to free the returned string via free(3).
    


## EXAMPLES



           #include <seccomp.h>
    
           int main(int argc, char *argv[])
           {
                int rc = -1;
                scmp_filter_ctx ctx;
    
                ctx = seccomp_init(SCMP_ACT_KILL);
                if (ctx == NULL)
                     goto out;
    
                /* ... */
    
                rc = seccomp_rule_add(ctx, SCMP_ACT_ALLOW,
                                      seccomp_syscall_resolve_name("open"), 0);
                if (rc < 0)
                     goto out;
    
                /* ... */
    
                rc = seccomp_load(ctx);
                if (rc < 0)
                     goto out;
    
                /* ... */
    
           out:
                seccomp_release(ctx);
                return -rc;
           }
    


## NOTES



           In case of bare syscalls implemented on top of a multiplexed
           syscall, **seccomp_syscall_resolve_name()** and
           **seccomp_syscall_resolve_name_arch()** can be used to verify if a
           bare syscall is implemented for a specific architecture, while
           **seccomp_syscall_resolve_name_rewrite()** can be used to determine
           the underlying multiplexed syscall.
    
           While the seccomp filter can be generated independent of the
           kernel, kernel support is required to load and enforce the seccomp
           filter generated by libseccomp.
    
           The libseccomp project site, with more information and the source
           code repository, can be found at
           https://github.com/seccomp/libseccomp.  This tool, as well as the
           libseccomp library, is currently under development, please report
           any bugs at the project site or directly to the author.
    


* * *