- renamed NewHandle to CreateHandle
- updated CreateHandle/DeleteHandle to use KernelObject's
This commit is contained in:
		@@ -27,7 +27,7 @@ union GX_CmdBufferHeader {
 | 
			
		||||
    // <=15 when writing a command to shared memory. This is incremented by the application when 
 | 
			
		||||
    // writing a command to shared memory, after increasing this value TriggerCmdReqQueue is only 
 | 
			
		||||
    // used if this field is value 1.
 | 
			
		||||
    BitField<8,8,u32>  number_commands;
 | 
			
		||||
    BitField<8,8,u32>   number_commands;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -101,9 +101,7 @@ void RegisterInterruptRelayQueue(Service::Interface* self) {
 | 
			
		||||
    u32* cmd_buff = Service::GetCommandBuffer();
 | 
			
		||||
    u32 flags = cmd_buff[1];
 | 
			
		||||
    u32 event_handle = cmd_buff[3]; // TODO(bunnei): Implement event handling
 | 
			
		||||
    
 | 
			
		||||
    cmd_buff[2] = g_thread_id;          // ThreadID
 | 
			
		||||
    cmd_buff[4] = self->NewHandle();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// This triggers handling of the GX command written to the command buffer in shared memory.
 | 
			
		||||
 
 | 
			
		||||
@@ -63,14 +63,16 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Allocates a new handle for the service
 | 
			
		||||
    Handle NewHandle() {
 | 
			
		||||
        Handle handle = (m_handles.size() << 16) | 0;//m_handle;
 | 
			
		||||
    Handle CreateHandle(KernelObject *obj) {
 | 
			
		||||
        Handle handle = g_kernel_objects.Create(obj);
 | 
			
		||||
        m_handles.push_back(handle);
 | 
			
		||||
        return handle;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Frees a handle from the service
 | 
			
		||||
    void DeleteHandle(Handle handle) {
 | 
			
		||||
    template <class T>
 | 
			
		||||
    void DeleteHandle(const Handle handle) {
 | 
			
		||||
        g_kernel_objects.Destroy<T>(handle);
 | 
			
		||||
        m_handles.erase(std::remove(m_handles.begin(), m_handles.end(), handle), m_handles.end());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -111,8 +113,8 @@ protected:
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
 | 
			
		||||
    std::vector<Handle>    m_handles;
 | 
			
		||||
    std::map<u32, FunctionInfo>     m_functions;
 | 
			
		||||
    std::vector<Handle>         m_handles;
 | 
			
		||||
    std::map<u32, FunctionInfo> m_functions;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user