title: Can someone explain the C syntax in this block of linux device driver code?
body: <p>Specifically, is the (*llseek) term an object casting? Does this syntax &lt; ( * &lt; name &gt; ) (...) &gt; have a term that I can google search it to learn more.</p>
  <p>Why doesn't &quot;struct file *&quot; have a variable name, and how can I access it (assuming I need to or allowed to access it). Similarly, the remaining parameters have no variable names &quot;loff_t, int&quot;, why is that?
  Finally, is __user (in this example or __ in general) a Macro?</p>
  <pre><code> struct file_operations {
          loff_t (*llseek) (struct file *, loff_t, int);
          ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
  </code></pre>
  <p>Thanks!</p>