Merge tag 'scsi-postmerge' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb...
[linux-2.6-block.git] / drivers / tee / tee_private.h
index 21cb6be8bce94d91a052009a20410618d3e2c24b..85d99d621603d7f2dd111c2549c312c01069df85 100644 (file)
 #include <linux/mutex.h>
 #include <linux/types.h>
 
-struct tee_device;
-
-/**
- * struct tee_shm - shared memory object
- * @teedev:    device used to allocate the object
- * @ctx:       context using the object, if NULL the context is gone
- * @link       link element
- * @paddr:     physical address of the shared memory
- * @kaddr:     virtual address of the shared memory
- * @size:      size of shared memory
- * @dmabuf:    dmabuf used to for exporting to user space
- * @flags:     defined by TEE_SHM_* in tee_drv.h
- * @id:                unique id of a shared memory object on this device
- */
-struct tee_shm {
-       struct tee_device *teedev;
-       struct tee_context *ctx;
-       struct list_head link;
-       phys_addr_t paddr;
-       void *kaddr;
-       size_t size;
-       struct dma_buf *dmabuf;
-       u32 flags;
-       int id;
-};
-
-struct tee_shm_pool_mgr;
-
-/**
- * struct tee_shm_pool_mgr_ops - shared memory pool manager operations
- * @alloc:     called when allocating shared memory
- * @free:      called when freeing shared memory
- */
-struct tee_shm_pool_mgr_ops {
-       int (*alloc)(struct tee_shm_pool_mgr *poolmgr, struct tee_shm *shm,
-                    size_t size);
-       void (*free)(struct tee_shm_pool_mgr *poolmgr, struct tee_shm *shm);
-};
-
-/**
- * struct tee_shm_pool_mgr - shared memory manager
- * @ops:               operations
- * @private_data:      private data for the shared memory manager
- */
-struct tee_shm_pool_mgr {
-       const struct tee_shm_pool_mgr_ops *ops;
-       void *private_data;
-};
-
 /**
  * struct tee_shm_pool - shared memory pool
  * @private_mgr:       pool manager for shared memory only between kernel
  *                     and secure world
  * @dma_buf_mgr:       pool manager for shared memory exported to user space
- * @destroy:           called when destroying the pool
- * @private_data:      private data for the pool
  */
 struct tee_shm_pool {
-       struct tee_shm_pool_mgr private_mgr;
-       struct tee_shm_pool_mgr dma_buf_mgr;
-       void (*destroy)(struct tee_shm_pool *pool);
-       void *private_data;
+       struct tee_shm_pool_mgr *private_mgr;
+       struct tee_shm_pool_mgr *dma_buf_mgr;
 };
 
 #define TEE_DEVICE_FLAG_REGISTERED     0x1
@@ -126,4 +73,7 @@ int tee_shm_get_fd(struct tee_shm *shm);
 bool tee_device_get(struct tee_device *teedev);
 void tee_device_put(struct tee_device *teedev);
 
+void teedev_ctx_get(struct tee_context *ctx);
+void teedev_ctx_put(struct tee_context *ctx);
+
 #endif /*TEE_PRIVATE_H*/