]> Pileus Git - ~andy/linux/blobdiff - Documentation/pcmcia/locking.txt
vmwgfx: Add present and readback ioctls
[~andy/linux] / Documentation / pcmcia / locking.txt
index 5f25de4cdb4206a10741d8ad2a011817aab0f109..68f622bc406450dec85c7ca1a6cffebbd731489a 100644 (file)
@@ -36,7 +36,8 @@ be called with "ops_mutex" held:
        socket_reset()
        socket_setup()
 
-       struct pccard_operations *ops
+       struct pccard_operations        *ops
+       struct pccard_resource_ops      *resource_ops;
 
 Note that send_event() and struct pcmcia_callback *callback must not be
 called with "ops_mutex" held.
@@ -54,7 +55,7 @@ protected by pcmcia_socket_list_rwsem;
 
 2. Per-Socket Data:
 -------------------
-The resource_ops are on their own to provide proper locking.
+The resource_ops and their data are protected by ops_mutex.
 
 The "main" struct pcmcia_socket is protected as follows (read-only fields
 or single-use fields not mentioned):
@@ -90,3 +91,28 @@ or single-use fields not mentioned):
        struct list_head        devices_list;
        u8                      device_count;
        struct                  pcmcia_state;
+
+
+3. Per PCMCIA-device Data:
+--------------------------
+
+The "main" struct pcmcia_devie is protected as follows (read-only fields
+or single-use fields not mentioned):
+
+
+- by pcmcia_socket->ops_mutex:
+       struct list_head        socket_device_list;
+       struct config_t         *function_config;
+       u16                     _irq:1;
+       u16                     _io:1;
+       u16                     _win:4;
+       u16                     _locked:1;
+       u16                     allow_func_id_match:1;
+       u16                     suspended:1;
+       u16                     _removed:1;
+
+- by the PCMCIA driver:
+       io_req_t                io;
+       irq_req_t               irq;
+       config_req_t            conf;
+       window_handle_t         win;