Guest User

Untitled

a guest
May 20th, 2013
117
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
  2. #define NV_SET_PROC_ENTRY_OWNER(entry) ((entry)->owner = THIS_MODULE)
  3. #else
  4. #define NV_SET_PROC_ENTRY_OWNER(entry)
  5. #endif
  6.  
  7. #define NV_CREATE_PROC_ENTRY(name,mode,parent,NULL)            \
  8.    ({                                                     \
  9.         struct proc_dir_entry *__entry;                   \
  10.         __entry = proc_create(name, mode, parent, NULL);  \
  11.         if (__entry != NULL)                              \
  12.             NV_SET_PROC_ENTRY_OWNER(__entry);             \
  13.         __entry;                                          \
  14.     })
  15.  
  16. #define NV_CREATE_PROC_FILE(name,parent,__read_proc,           \
  17.     __write_proc,__fops,__data)                                \
  18.    ({                                                          \
  19.         struct proc_dir_entry *__entry;                        \
  20.         int __mode = (S_IFREG | S_IRUGO);                      \
  21.         if ((NvUPtr)(__write_proc) != 0)                       \
  22.             __mode |= S_IWUSR;                                 \
  23.         __entry = NV_CREATE_PROC_ENTRY(name, __mode, parent, NULL);  \
  24.         if (__entry != NULL)                                   \
  25.         {                                                      \
  26.             if ((NvUPtr)(__read_proc) != 0)                    \
  27.                 __entry->read_proc = (__read_proc);            \
  28.             if ((NvUPtr)(__write_proc) != 0)                   \
  29.             {                                                  \
  30.                 __entry->write_proc = (__write_proc);          \
  31.                 __entry->proc_fops = (__fops);                 \
  32.             }                                                  \
  33.             __entry->data = (__data);                          \
  34.         }                                                      \
  35.         __entry;                                               \
  36.     })
  37.  
  38. #define NV_CREATE_PROC_DIR(name,parent)                        \
  39.    ({                                                          \
  40.         struct proc_dir_entry *__entry;                        \
  41.         int __mode = (S_IFDIR | S_IRUGO | S_IXUGO);            \
  42.         __entry = NV_CREATE_PROC_ENTRY(name, __mode, parent, NULL);  \
  43.         __entry;                                               \
  44.     })
  45.  
  46. #define NV_PROC_WRITE_BUFFER_SIZE   (64 * RM_PAGE_SIZE)
RAW Paste Data