I. Field
The present invention relates generally to the efficient operation of a device, and more particularly, to a system for dynamic registration of privileged mode hooks in a device.
II. Description of the Related Art
Advances in technology have resulted in the development of a variety of devices for home, office, and personal use. For example, computer systems, such as desktops, notebooks, and tablet computers have become powerful tools for use at home or in office environments. Personal devices, such as wireless telephones, personal digital assistants (PDAs), and paging devices have also become more powerful and are now widely used.
Many devices now comprise complex hardware and software that run operating systems such as UNIX, LINUX, or similar operating systems. Generally, these operating systems provide for multiple modes of operation. For example, most systems provide privileged and non-privileged modes of operation. Programs executing in the privileged mode of operation are allowed to access memory and system resources without limitation. Programs executing in the non-privileged mode are restricted from accessing certain memory regions and/or device systems. This configuration provides a level of protection to important memory or device functions. For example, by executing third-party applications in the non-privileged mode, important memory regions and device functions can be protected from unauthorized access. Also, such an arrangement allows the system to isolate faults during execution.
Over time, these systems have grown more sophisticated to meet the increasing needs of devices and device users. For example, function modules, or functions, are used to provide a variety of system services. As devices have become more complicated and feature rich, the number and complexity of the functions associated with these features has also increased.
Unfortunately, conventional systems have several limitations with regards to supporting function modules. For example, conventional systems may have a limited number of hooks used to access functions. For example, the system may have a limited number of traps that can be used to access functions. Furthermore, the trap definitions are compiled into a binary executable that runs on the device, which results in an inherent limitation on the system's flexibility.
Therefore, what is needed is a system that provides a way to dynamically register hooks to privileged functions. The system should allow functions to be registered during system initialization, thereby providing flexibility and avoiding potential versioning problems inherent in conventional systems that compile trap definitions into an executable. The system should also allow an unlimited number of functions to be registered thereby overcoming restrictions associated with conventional systems that associate a fixed number of available traps to functions.