-
User code calls ioctl with LCD_RUN_BLOB ioctl number and lcd_blob_info (containing userspace address of blob and blob order) -- defined in public include/linux/lcd-domains.h. The blob must be N pages, and N must be a power of 2 (for easy driver code). blob_order = log2(N). The blob consists of machine instructions that are loaded in the lcd and executed. The machine instructions cannot access any memory, including the stack (for now, until gv paging is in place). -- Added lcd_arch_set_pc for setting the lcd's program counter. -- Added driver code in lcd-domains.c for handling the ioctl request, loading the blob from user space into a fresh lcd, and running the lcd (in a loop).
f0735fd0