OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [security/] [keys/] [compat.c] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/* compat.c: 32-bit compatibility syscall for 64-bit systems
2
 *
3
 * Copyright (C) 2004-5 Red Hat, Inc. All Rights Reserved.
4
 * Written by David Howells (dhowells@redhat.com)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version
9
 * 2 of the License, or (at your option) any later version.
10
 */
11
 
12
#include <linux/syscalls.h>
13
#include <linux/keyctl.h>
14
#include <linux/compat.h>
15
#include "internal.h"
16
 
17
/*****************************************************************************/
18
/*
19
 * the key control system call, 32-bit compatibility version for 64-bit archs
20
 * - this should only be called if the 64-bit arch uses weird pointers in
21
 *   32-bit mode or doesn't guarantee that the top 32-bits of the argument
22
 *   registers on taking a 32-bit syscall are zero
23
 * - if you can, you should call sys_keyctl directly
24
 */
25
asmlinkage long compat_sys_keyctl(u32 option,
26
                                  u32 arg2, u32 arg3, u32 arg4, u32 arg5)
27
{
28
        switch (option) {
29
        case KEYCTL_GET_KEYRING_ID:
30
                return keyctl_get_keyring_ID(arg2, arg3);
31
 
32
        case KEYCTL_JOIN_SESSION_KEYRING:
33
                return keyctl_join_session_keyring(compat_ptr(arg2));
34
 
35
        case KEYCTL_UPDATE:
36
                return keyctl_update_key(arg2, compat_ptr(arg3), arg4);
37
 
38
        case KEYCTL_REVOKE:
39
                return keyctl_revoke_key(arg2);
40
 
41
        case KEYCTL_DESCRIBE:
42
                return keyctl_describe_key(arg2, compat_ptr(arg3), arg4);
43
 
44
        case KEYCTL_CLEAR:
45
                return keyctl_keyring_clear(arg2);
46
 
47
        case KEYCTL_LINK:
48
                return keyctl_keyring_link(arg2, arg3);
49
 
50
        case KEYCTL_UNLINK:
51
                return keyctl_keyring_unlink(arg2, arg3);
52
 
53
        case KEYCTL_SEARCH:
54
                return keyctl_keyring_search(arg2, compat_ptr(arg3),
55
                                             compat_ptr(arg4), arg5);
56
 
57
        case KEYCTL_READ:
58
                return keyctl_read_key(arg2, compat_ptr(arg3), arg4);
59
 
60
        case KEYCTL_CHOWN:
61
                return keyctl_chown_key(arg2, arg3, arg4);
62
 
63
        case KEYCTL_SETPERM:
64
                return keyctl_setperm_key(arg2, arg3);
65
 
66
        case KEYCTL_INSTANTIATE:
67
                return keyctl_instantiate_key(arg2, compat_ptr(arg3), arg4,
68
                                              arg5);
69
 
70
        case KEYCTL_NEGATE:
71
                return keyctl_negate_key(arg2, arg3, arg4);
72
 
73
        case KEYCTL_SET_REQKEY_KEYRING:
74
                return keyctl_set_reqkey_keyring(arg2);
75
 
76
        case KEYCTL_SET_TIMEOUT:
77
                return keyctl_set_timeout(arg2, arg3);
78
 
79
        case KEYCTL_ASSUME_AUTHORITY:
80
                return keyctl_assume_authority(arg2);
81
 
82
        default:
83
                return -EOPNOTSUPP;
84
        }
85
 
86
} /* end compat_sys_keyctl() */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.