Added new ioctl to allow users register own buffers as a shared memory.
Showing the changes to include/uapi/linux (1 of 4 files). Show all
Unified · Split
| @@ -50,6 +50,7 @@ · 49 unmodified lines | ||
| 50 | 50 | |
| 51 | 51 | #define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */ |
| 52 | 52 | #define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */ |
| 53 | +#define TEE_GEN_CAP_REG_MEM (1 << 2)/* Supports registering shared memory */ | |
| 53 | 54 | |
| 54 | 55 | /* |
| 55 | 56 | * TEE Implementation ID |
| @@ -332,6 +333,35 @@ struct tee_iocl_supp_send_arg { · 276 unmodified lines | ||
| 332 | 333 | #define TEE_IOC_SUPPL_SEND _IOR(TEE_IOC_MAGIC, TEE_IOC_BASE + 7, \ |
| 333 | 334 | struct tee_ioctl_buf_data) |
| 334 | 335 | |
| 336 | +/** | |
| 337 | + * struct tee_ioctl_shm_register_data - Shared memory register argument | |
| 338 | + * @addr: [in] Start address of shared memory to register | |
| 339 | + * @length: [in/out] Length of shared memory to register | |
| 340 | + * @flags: [in/out] Flags to/from registration. | |
| 341 | + * @id: [out] Identifier of the shared memory | |
| 342 | + * | |
| 343 | + * The flags field should currently be zero as input. Updated by the call | |
| 344 | + * with actual flags as defined by TEE_IOCTL_SHM_* above. | |
| 345 | + * This structure is used as argument for TEE_IOC_SHM_REGISTER below. | |
| 346 | + */ | |
| 347 | +struct tee_ioctl_shm_register_data { | |
| 348 | + __u64 addr; | |
| 349 | + __u64 length; | |
| 350 | + __u32 flags; | |
| 351 | + __s32 id; | |
| 352 | +}; | |
| 353 | + | |
| 354 | +/** | |
| 355 | + * TEE_IOC_SHM_REGISTER - Register shared memory argument | |
| 356 | + * | |
| 357 | + * Registers shared memory between the user space process and secure OS. | |
| 358 | + * | |
| 359 | + * Returns a file descriptor on success or < 0 on failure | |
| 360 | + * | |
| 361 | + * The shared memory is unregisterred when the descriptor is closed. | |
| 362 | + */ | |
| 363 | +#define TEE_IOC_SHM_REGISTER _IOWR(TEE_IOC_MAGIC, TEE_IOC_BASE + 9, \ | |
| 364 | + struct tee_ioctl_shm_register_data) | |
| 335 | 365 | /* |
| 336 | 366 | * Five syscalls are used when communicating with the TEE driver. |
| 337 | 367 | * open(): opens the device associated with the driver |