Google Oct 7, 2013 - Dec 9, 2016
Software Engineer, Tools and Infrastructure at Google
Google Oct 1, 2013 - Aug 1, 2015
Software Engineer In Test
Bloomberg Lp Jun 4, 2013 - Aug 23, 2013
Financial Software Developer Intern
University of Southern California Aug 2012 - May 2013
Teaching Assistant
Microsoft Apr 1, 2012 - Jun 1, 2012
Sde Intern
Education:
University of Southern California 2012 - 2017
Doctorates, Doctor of Philosophy, Computer Science, Philosophy
University of Southern California 2012 - 2016
Master of Science, Masters, Computer Science
Shanghai Jiao Tong University 2008 - 2012
Bachelors, Bachelor of Science, Computer Science
Nanjing Foreign Language School 2005 - 2008
Jinling Hign School 2002 - 2005
Skills:
Algorithms Machine Learning C++ Computer Science Latex Programming Data Structures Artificial Intelligence Software Engineering Java Natural Language Processing Information Retrieval C C# Javascript Ruby
A host system includes an operating system having a user space and a kernel space with a memory. A device driver performs download cycles to download a firmware file from the user space to the memory. The download cycles are performed based on blocks of data remaining in the user space and not downloaded from the user space. The device driver: transfers a first block of data to a first segment of the memory; transfers a second block of data from the user space to a second segment of the memory; copies the first block into the second segment; and appends the first block to the second block to form a combined block. The first block is transferred from the user space to the first segment during a first download cycle. The first block is transferred from a second segment to the first segment during a second download cycle.
A host includes an operating system segmented into a user space and a kernel space with a driver. The user space stores a firmware file and the kernel space includes memory. The driver is stored in the kernel space and performs download cycles to download the firmware file to the memory. The device driver, during a first download cycle, transfers a first block of data to the memory. During each download cycle performed subsequent to the first download cycle, the driver is configured to: identify first and second segments of the memory, where data including the first block of data was stored in the first segment during a previous download cycle; copy the data including the first block of data from the first segment to the second segment; and transfer a block of data of the firmware file, not previously stored in the memory, to the second segment.
Method And Apparatus For Transferring Firmware Between An Operating System Device In A Host
A method and system for transferring a firmware file between a host system and a device driver, wherein the host system includes an operating system segmented into a user space and a kernel space is disclosed. Aspects of the exemplary embodiment include using a first type of process file system command in the user space to initiate a transfer of the firmware file between the host system and the device driver, wherein the firmware file exists in the user space and the device driver exists in the kernel space; and using a second type of process file system command in the user space to transfer the firmware file between the user space and the device driver in kernel space.