summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/gsp.h
blob: 214de140f9d0f50627ecc1a6c8a8f29b0c99b718 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright 2014 Citra Emulator Project
// Licensed under GPLv2
// Refer to the license.txt file included.

#pragma once

#include "core/hle/service/service.h"

////////////////////////////////////////////////////////////////////////////////////////////////////
// Namespace GSP_GPU

namespace GSP_GPU {

enum class GXCommandId : u32 {
    REQUEST_DMA            = 0x00000000,
    SET_COMMAND_LIST_LAST  = 0x00000001,
    SET_MEMORY_FILL        = 0x00000002, // TODO: Confirm? (lictru uses 0x01000102)
    SET_DISPLAY_TRANSFER   = 0x00000003,
    SET_TEXTURE_COPY       = 0x00000004,
    SET_COMMAND_LIST_FIRST = 0x00000005,
};

union GXCommand {
    struct {
        GXCommandId id;
    };

    u32 data[0x20];
};

/// Interface to "srv:" service
class Interface : public Service::Interface {
public:

    Interface();

    ~Interface();

    /**
     * Gets the string port name used by CTROS for the service
     * @return Port name of service
     */
    const char *GetPortName() const {
        return "gsp::Gpu";
    }

};

} // namespace