Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]

Diff markup

Differences between /linux/include/keys/user-type.h (Version 2.6.25) and /linux/include/keys/user-type.h (Version 2.6.25.8)


  1 /* user-type.h: User-defined key type               1 /* user-type.h: User-defined key type
  2  *                                                  2  *
  3  * Copyright (C) 2005 Red Hat, Inc. All Rights      3  * Copyright (C) 2005 Red Hat, Inc. All Rights Reserved.
  4  * Written by David Howells (dhowells@redhat.c      4  * Written by David Howells (dhowells@redhat.com)
  5  *                                                  5  *
  6  * This program is free software; you can redi      6  * This program is free software; you can redistribute it and/or
  7  * modify it under the terms of the GNU Genera      7  * modify it under the terms of the GNU General Public License
  8  * as published by the Free Software Foundatio      8  * as published by the Free Software Foundation; either version
  9  * 2 of the License, or (at your option) any l      9  * 2 of the License, or (at your option) any later version.
 10  */                                                10  */
 11                                                    11 
 12 #ifndef _KEYS_USER_TYPE_H                          12 #ifndef _KEYS_USER_TYPE_H
 13 #define _KEYS_USER_TYPE_H                          13 #define _KEYS_USER_TYPE_H
 14                                                    14 
 15 #include <linux/key.h>                             15 #include <linux/key.h>
 16 #include <linux/rcupdate.h>                        16 #include <linux/rcupdate.h>
 17                                                    17 
 18 /*********************************************     18 /*****************************************************************************/
 19 /*                                                 19 /*
 20  * the payload for a key of type "user"            20  * the payload for a key of type "user"
 21  * - once filled in and attached to a key:         21  * - once filled in and attached to a key:
 22  *   - the payload struct is invariant may not     22  *   - the payload struct is invariant may not be changed, only replaced
 23  *   - the payload must be read with RCU proce     23  *   - the payload must be read with RCU procedures or with the key semaphore
 24  *     held                                        24  *     held
 25  *   - the payload may only be replaced with t     25  *   - the payload may only be replaced with the key semaphore write-locked
 26  * - the key's data length is the size of the      26  * - the key's data length is the size of the actual data, not including the
 27  *   payload wrapper                               27  *   payload wrapper
 28  */                                                28  */
 29 struct user_key_payload {                          29 struct user_key_payload {
 30         struct rcu_head rcu;            /* RCU     30         struct rcu_head rcu;            /* RCU destructor */
 31         unsigned short  datalen;        /* len     31         unsigned short  datalen;        /* length of this data */
 32         char            data[0];        /* act     32         char            data[0];        /* actual data */
 33 };                                                 33 };
 34                                                    34 
 35 extern struct key_type key_type_user;              35 extern struct key_type key_type_user;
 36                                                    36 
 37 extern int user_instantiate(struct key *key, c     37 extern int user_instantiate(struct key *key, const void *data, size_t datalen);
 38 extern int user_update(struct key *key, const      38 extern int user_update(struct key *key, const void *data, size_t datalen);
 39 extern int user_match(const struct key *key, c     39 extern int user_match(const struct key *key, const void *criterion);
 40 extern void user_revoke(struct key *key);          40 extern void user_revoke(struct key *key);
 41 extern void user_destroy(struct key *key);         41 extern void user_destroy(struct key *key);
 42 extern void user_describe(const struct key *us     42 extern void user_describe(const struct key *user, struct seq_file *m);
 43 extern long user_read(const struct key *key,       43 extern long user_read(const struct key *key,
 44                       char __user *buffer, siz     44                       char __user *buffer, size_t buflen);
 45                                                    45 
 46                                                    46 
 47 #endif /* _KEYS_USER_TYPE_H */                     47 #endif /* _KEYS_USER_TYPE_H */
 48                                                    48 
  This page was automatically generated by the LXR engine.