linux-old/net/khttpd/structure.h
<<
>>
Prefs
   1#ifndef _INCLUDE_GUARD_STRUCTURE_H_
   2#define _INCLUDE_GUARD_STRUCTURE_H_
   3
   4#include <linux/time.h>
   5#include <linux/wait.h>
   6
   7
   8struct http_request;
   9
  10struct http_request
  11{
  12        /* Linked list */
  13        struct http_request *Next;
  14        
  15        /* Network and File data */
  16        struct socket   *sock;          
  17        struct file     *filp;          
  18
  19        /* Raw data about the file */
  20        
  21        int             FileLength;     /* File length in bytes */
  22        int             Time;           /* mtime of the file, unix format */
  23        int             BytesSent;      /* The number of bytes already sent */
  24        int             IsForUserspace; /* 1 means let Userspace handle this one */
  25        
  26        /* Wait queue */
  27        
  28        wait_queue_t sleep;             /* For putting in the socket's waitqueue */
  29        
  30        /* HTTP request information */
  31        char            FileName[256];  /* The requested filename */
  32        int             FileNameLength; /* The length of the string representing the filename */
  33        char            Agent[128];     /* The agent-string of the remote browser */
  34        char            IMS[128];       /* If-modified-since time, rfc string format */
  35        char            Host[128];      /* Value given by the Host: header */
  36        int             HTTPVER;        /* HTTP-version; 9 for 0.9,   10 for 1.0 and above */
  37
  38
  39        /* Derived date from the above fields */        
  40        int             IMS_Time;       /* if-modified-since time, unix format */
  41        char            TimeS[64];      /* File mtime, rfc string representation */
  42        char            LengthS[14];    /* File length, string representation */
  43        char            *MimeType;      /* Pointer to a string with the mime-type 
  44                                           based on the filename */
  45        __kernel_size_t MimeLength;     /* The length of this string */
  46        
  47};
  48
  49
  50
  51/*
  52
  53struct khttpd_threadinfo represents the four queues that 1 thread has to deal with.
  54It is padded to occupy 1 (Intel) cache-line, to avoid "cacheline-pingpong".
  55
  56*/
  57struct khttpd_threadinfo
  58{
  59        struct http_request* WaitForHeaderQueue;
  60        struct http_request* DataSendingQueue;
  61        struct http_request* LoggingQueue;
  62        struct http_request* UserspaceQueue;
  63        char  dummy[16];  /* Padding for cache-lines */
  64};
  65
  66
  67
  68#endif
  69
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.