mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-01-27 03:35:24 +00:00
Reintroduce LOG_CHANNEL
Groundwork for further improvements
This commit is contained in:
parent
57f394e156
commit
363811981d
@ -7,8 +7,6 @@
|
||||
|
||||
namespace cfg
|
||||
{
|
||||
logs::channel cfg("CFG");
|
||||
|
||||
_base::_base(type _type)
|
||||
: m_type(_type)
|
||||
{
|
||||
@ -67,19 +65,19 @@ bool cfg::try_to_int64(s64* out, const std::string& value, s64 min, s64 max)
|
||||
}
|
||||
catch (const std::exception& e)
|
||||
{
|
||||
if (out) cfg.error("cfg::try_to_int('%s'): exception: %s", value, e.what());
|
||||
if (out) LOG_ERROR(GENERAL, "cfg::try_to_int('%s'): exception: %s", value, e.what());
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pos != value.size())
|
||||
{
|
||||
if (out) cfg.error("cfg::try_to_int('%s'): unexpected characters (pos=%zu)", value, pos);
|
||||
if (out) LOG_ERROR(GENERAL, "cfg::try_to_int('%s'): unexpected characters (pos=%zu)", value, pos);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (result < min || result > max)
|
||||
{
|
||||
if (out) cfg.error("cfg::try_to_int('%s'): out of bounds (%lld..%lld)", value, min, max);
|
||||
if (out) LOG_ERROR(GENERAL, "cfg::try_to_int('%s'): out of bounds (%lld..%lld)", value, min, max);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -119,13 +117,13 @@ bool cfg::try_to_enum_value(u64* out, decltype(&fmt_class_string<int>::format) f
|
||||
|
||||
if (pos != value.size())
|
||||
{
|
||||
if (out) cfg.error("cfg::try_to_enum_value('%s'): unexpected characters (pos=%zu)", value, pos);
|
||||
if (out) LOG_ERROR(GENERAL, "cfg::try_to_enum_value('%s'): unexpected characters (pos=%zu)", value, pos);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (val > max)
|
||||
{
|
||||
if (out) cfg.error("cfg::try_to_enum_value('%s'): out of bounds(0..%u)", value, max);
|
||||
if (out) LOG_ERROR(GENERAL, "cfg::try_to_enum_value('%s'): out of bounds(0..%u)", value, max);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -134,7 +132,7 @@ bool cfg::try_to_enum_value(u64* out, decltype(&fmt_class_string<int>::format) f
|
||||
}
|
||||
catch (const std::exception& e)
|
||||
{
|
||||
if (out) cfg.error("cfg::try_to_enum_value('%s'): invalid enum value: %s", value, e.what());
|
||||
if (out) LOG_ERROR(GENERAL, "cfg::try_to_enum_value('%s'): invalid enum value: %s", value, e.what());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -300,7 +298,7 @@ bool cfg::node::from_string(const std::string& value) try
|
||||
}
|
||||
catch (const std::exception& e)
|
||||
{
|
||||
cfg.fatal("%s thrown: %s", typeid(e).name(), e.what());
|
||||
LOG_FATAL(GENERAL, "%s thrown: %s", typeid(e).name(), e.what());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
extern void ppu_set_breakpoint(u32 addr);
|
||||
extern void ppu_remove_breakpoint(u32 addr);
|
||||
|
||||
logs::channel gdbDebugServer("gdbDebugServer");
|
||||
LOG_CHANNEL(gdbDebugServer);
|
||||
|
||||
int sock_init(void)
|
||||
{
|
||||
|
@ -113,6 +113,8 @@ namespace logs
|
||||
void set_level(const std::string&, level);
|
||||
}
|
||||
|
||||
#define LOG_CHANNEL(ch, ...) ::logs::channel ch(#ch, ##__VA_ARGS__);
|
||||
|
||||
// Legacy:
|
||||
|
||||
#define LOG_SUCCESS(ch, fmt, ...) logs::ch.success("" fmt, ##__VA_ARGS__)
|
||||
|
@ -21,7 +21,7 @@ extern "C"
|
||||
|
||||
extern std::mutex g_mutex_avcodec_open2;
|
||||
|
||||
logs::channel cellAdec("cellAdec");
|
||||
LOG_CHANNEL(cellAdec);
|
||||
|
||||
class AudioDecoder : public ppu_thread
|
||||
{
|
||||
@ -252,7 +252,7 @@ public:
|
||||
if (just_started && just_finished)
|
||||
{
|
||||
avcodec_flush_buffers(ctx);
|
||||
|
||||
|
||||
reader.init = true; // wrong
|
||||
just_finished = false;
|
||||
just_started = false;
|
||||
@ -531,7 +531,7 @@ bool adecCheckType(s32 type)
|
||||
cellAdec.todo("Unimplemented audio codec type (%d)", type);
|
||||
Emu.Pause();
|
||||
break;
|
||||
}
|
||||
}
|
||||
default: return false;
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellAtrac.h"
|
||||
|
||||
logs::channel cellAtrac("cellAtrac");
|
||||
LOG_CHANNEL(cellAtrac);
|
||||
|
||||
s32 cellAtracSetDataAndGetMemSize(vm::ptr<CellAtracHandle> pHandle, vm::ptr<u8> pucBufferAddr, u32 uiReadByte, u32 uiBufferByte, vm::ptr<u32> puiWorkMemByte)
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellAtracMulti.h"
|
||||
|
||||
logs::channel cellAtracMulti("cellAtracMulti");
|
||||
LOG_CHANNEL(cellAtracMulti);
|
||||
|
||||
s32 cellAtracMultiSetDataAndGetMemSize(vm::ptr<CellAtracMultiHandle> pHandle, vm::ptr<u8> pucBufferAddr, u32 uiReadByte, u32 uiBufferByte, u32 uiOutputChNum, vm::ptr<s32> piTrackArray, vm::ptr<u32> puiWorkMemByte)
|
||||
{
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include <thread>
|
||||
|
||||
logs::channel cellAudio("cellAudio");
|
||||
LOG_CHANNEL(cellAudio);
|
||||
|
||||
template <>
|
||||
void fmt_class_string<CellAudioError>::format(std::string& out, u64 arg)
|
||||
@ -326,7 +326,7 @@ void audio_config::on_task()
|
||||
{
|
||||
if (auto queue = lv2_event_queue::find(key))
|
||||
{
|
||||
queue->send(0, 0, 0, 0); // TODO: check arguments
|
||||
queue->send(0, 0, 0, 0); // TODO: check arguments
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -790,7 +790,7 @@ error_code cellAudioRemoveNotifyEventQueue(u64 key)
|
||||
if (*i == key)
|
||||
{
|
||||
g_audio->keys.erase(i);
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include "cellVideoOut.h"
|
||||
#include "cellSysutil.h"
|
||||
|
||||
logs::channel cellAvconfExt("cellAvconfExt");
|
||||
LOG_CHANNEL(cellAvconfExt);
|
||||
|
||||
s32 cellAudioOutUnregisterDevice(u32 deviceNumber)
|
||||
{
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellBGDL("cellBGDL");
|
||||
LOG_CHANNEL(cellBGDL);
|
||||
|
||||
s32 cellBGDLGetInfo(vm::cptr<char> content_id, vm::ptr<CellBGDLInfo> info, s32 num)
|
||||
{
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
#include <thread>
|
||||
|
||||
logs::channel cellCamera("cellCamera");
|
||||
LOG_CHANNEL(cellCamera);
|
||||
|
||||
// **************
|
||||
// * Prototypes *
|
||||
@ -392,7 +392,7 @@ s32 cellCameraOpenEx(s32 dev_num, vm::ptr<CellCameraInfoEx> info)
|
||||
{
|
||||
return CELL_CAMERA_ERROR_DEVICE_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
||||
s32 status;
|
||||
if ((status = cellCameraSetAttribute(dev_num, CELL_CAMERA_READMODE, info->read_mode, 0)) != CELL_OK)
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellCelp8Enc.h"
|
||||
|
||||
logs::channel cellCelp8Enc("cellCelp8Enc");
|
||||
LOG_CHANNEL(cellCelp8Enc);
|
||||
|
||||
|
||||
s32 cellCelp8EncQueryAttr()
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellCelpEnc.h"
|
||||
|
||||
logs::channel cellCelpEnc("cellCelpEnc");
|
||||
LOG_CHANNEL(cellCelpEnc);
|
||||
|
||||
|
||||
s32 cellCelpEncQueryAttr()
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellCrossController("cellCrossController");
|
||||
LOG_CHANNEL(cellCrossController);
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "cellDaisy.h"
|
||||
|
||||
logs::channel cellDaisy("cellDaisy");
|
||||
LOG_CHANNEL(cellDaisy);
|
||||
|
||||
using LFQueue2 = struct CellDaisyLFQueue2;
|
||||
using Lock = struct CellDaisyLock;
|
||||
@ -138,7 +138,7 @@ DECLARE(ppu_module_manager::cellDaisy)("cellDaisy", []()
|
||||
REG_FNID(cellDaisy, "_QN4cell5Daisy29LFQueue2HasUnfinishedConsumerEPNS0_8LFQueue2Ej", cellDaisyLFQueue2HasUnfinishedConsumer);
|
||||
REG_FNID(cellDaisy, "_ZN4cell5Daisy16LFQueue2PushOpenEPNS0_8LFQueue2E", cellDaisyLFQueue2PushOpen);
|
||||
REG_FNID(cellDaisy, "_QN4cell5Daisy16LFQueue2PushOpenEPNS0_8LFQueue2E", cellDaisyLFQueue2PushOpen);
|
||||
REG_FNID(cellDaisy, "_ZN4cell5Daisy16LFQueue2PopCloseEPNS0_8LFQueue2EPFiPvjE", cellDaisyLFQueue2PopClose);
|
||||
REG_FNID(cellDaisy, "_ZN4cell5Daisy16LFQueue2PopCloseEPNS0_8LFQueue2EPFiPvjE", cellDaisyLFQueue2PopClose);
|
||||
REG_FNID(cellDaisy, "_QN4cell5Daisy16LFQueue2PopCloseEPNS0_8LFQueue2EPFiPvjE", cellDaisyLFQueue2PopClose);
|
||||
REG_FNID(cellDaisy, "_ZN4cell5Daisy15LFQueue2PopOpenEPNS0_8LFQueue2E", cellDaisyLFQueue2PopOpen);
|
||||
REG_FNID(cellDaisy, "_QN4cell5Daisy15LFQueue2PopOpenEPNS0_8LFQueue2E", cellDaisyLFQueue2PopOpen);
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
#include <thread>
|
||||
|
||||
logs::channel cellDmux("cellDmux");
|
||||
LOG_CHANNEL(cellDmux);
|
||||
|
||||
/* Demuxer Thread Classes */
|
||||
|
||||
@ -68,9 +68,9 @@ struct DemuxerStream
|
||||
|
||||
u64 get_ts(u8 c)
|
||||
{
|
||||
u8 v[4]; get((u32&)v);
|
||||
u8 v[4]; get((u32&)v);
|
||||
return
|
||||
(((u64)c & 0x0e) << 29) |
|
||||
(((u64)c & 0x0e) << 29) |
|
||||
(((u64)v[0]) << 21) |
|
||||
(((u64)v[1] & 0x7e) << 15) |
|
||||
(((u64)v[2]) << 7) | ((u64)v[3] >> 1);
|
||||
@ -226,14 +226,14 @@ public:
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (!job.try_peek(task) && is_running && stream.addr)
|
||||
{
|
||||
// default task (demuxing) (if there is no other work)
|
||||
be_t<u32> code;
|
||||
be_t<u16> len;
|
||||
|
||||
if (!stream.peek(code))
|
||||
if (!stream.peek(code))
|
||||
{
|
||||
// demuxing finished
|
||||
is_running = false;
|
||||
@ -248,10 +248,10 @@ public:
|
||||
is_working = false;
|
||||
|
||||
stream = {};
|
||||
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
switch (code)
|
||||
{
|
||||
case PACK_START_CODE:
|
||||
@ -338,7 +338,7 @@ public:
|
||||
fmt::throw_exception("End of block (PRIVATE_STREAM_1, PesHeader + fid_minor, len=%d)" HERE, len);
|
||||
}
|
||||
len -= pes.size + 4;
|
||||
|
||||
|
||||
u8 fid_minor;
|
||||
if (!stream.get(fid_minor))
|
||||
{
|
||||
@ -388,7 +388,7 @@ public:
|
||||
if (size < frame_size + 8) break; // skip non-complete AU
|
||||
|
||||
if (es.isfull(frame_size + 8)) break; // skip if cannot push AU
|
||||
|
||||
|
||||
es.push_au(frame_size + 8, es.last_dts, es.last_pts, stream.userdata, false /* TODO: set correct value */, 0);
|
||||
|
||||
//cellDmux.notice("ATX AU pushed (ats=0x%llx, frame_size=%d)", *(be_t<u64>*)data, frame_size);
|
||||
@ -465,7 +465,7 @@ public:
|
||||
es.cbFunc(*this, id, es.id, esMsg, es.cbArg);
|
||||
lv2_obj::sleep(*this);
|
||||
}
|
||||
|
||||
|
||||
if (pes.has_ts)
|
||||
{
|
||||
// preserve dts/pts for next AU
|
||||
@ -631,7 +631,7 @@ public:
|
||||
es.cbFunc(*this, id, es.id, esMsg, es.cbArg);
|
||||
lv2_obj::sleep(*this);
|
||||
}
|
||||
|
||||
|
||||
if (es.raw_data.size())
|
||||
{
|
||||
cellDmux.error("dmuxFlushEs: 0x%x bytes lost (es_id=%d)", (u32)es.raw_data.size(), es.id);
|
||||
@ -651,7 +651,7 @@ public:
|
||||
task.es.es_ptr->reset();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case dmuxClose:
|
||||
{
|
||||
break;
|
||||
@ -660,7 +660,7 @@ public:
|
||||
default:
|
||||
{
|
||||
fmt::throw_exception("Demuxer thread error: unknown task (0x%x)" HERE, (u32)task.type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -689,7 +689,7 @@ PesHeader::PesHeader(DemuxerStream& stream)
|
||||
{
|
||||
fmt::throw_exception("End of stream (size=%d)" HERE, size);
|
||||
}
|
||||
|
||||
|
||||
u8 pos = 0;
|
||||
while (pos++ < size)
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellFiber.h"
|
||||
|
||||
logs::channel cellFiber("cellFiber");
|
||||
LOG_CHANNEL(cellFiber);
|
||||
|
||||
template <>
|
||||
void fmt_class_string<CellFiberError>::format(std::string& out, u64 arg)
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
#include "cellFont.h"
|
||||
|
||||
logs::channel cellFont("cellFont");
|
||||
LOG_CHANNEL(cellFont);
|
||||
|
||||
// Functions
|
||||
s32 cellFontInitializeWithRevision(u64 revisionFlags, vm::ptr<CellFontConfig> config)
|
||||
{
|
||||
cellFont.warning("cellFontInitializeWithRevision(revisionFlags=0x%llx, config=*0x%x)", revisionFlags, config);
|
||||
|
||||
|
||||
if (config->fc_size < 24)
|
||||
{
|
||||
return CELL_FONT_ERROR_INVALID_PARAMETER;
|
||||
@ -90,7 +90,7 @@ s32 cellFontOpenFontset(ppu_thread& ppu, vm::ptr<CellFontLibrary> library, vm::p
|
||||
{
|
||||
cellFont.warning("cellFontOpenFontset: Only Unicode is supported");
|
||||
}
|
||||
|
||||
|
||||
std::string file;
|
||||
switch((u32)fontType->type)
|
||||
{
|
||||
@ -186,7 +186,7 @@ s32 cellFontSetFontOpenMode(u32 openMode)
|
||||
s32 cellFontCreateRenderer(vm::ptr<CellFontLibrary> library, vm::ptr<CellFontRendererConfig> config, vm::ptr<CellFontRenderer> Renderer)
|
||||
{
|
||||
cellFont.todo("cellFontCreateRenderer(library=*0x%x, config=*0x%x, Renderer=*0x%x)", library, config, Renderer);
|
||||
|
||||
|
||||
//Write data in Renderer
|
||||
|
||||
return CELL_OK;
|
||||
@ -255,7 +255,7 @@ s32 cellFontBindRenderer(vm::ptr<CellFont> font, vm::ptr<CellFontRenderer> rende
|
||||
s32 cellFontUnbindRenderer(vm::ptr<CellFont> font)
|
||||
{
|
||||
cellFont.warning("cellFontBindRenderer(font=*0x%x)", font);
|
||||
|
||||
|
||||
if (!font->renderer_addr)
|
||||
{
|
||||
return CELL_FONT_ERROR_RENDERER_UNBIND;
|
||||
@ -403,7 +403,7 @@ s32 cellFontGetCharGlyphMetrics(vm::ptr<CellFont> font, u32 code, vm::ptr<CellFo
|
||||
float scale = stbtt_ScaleForPixelHeight(font->stbfont, font->scale_y);
|
||||
stbtt_GetCodepointBox(font->stbfont, code, &x0, &y0, &x1, &y1);
|
||||
stbtt_GetCodepointHMetrics(font->stbfont, code, &advanceWidth, &leftSideBearing);
|
||||
|
||||
|
||||
// TODO: Add the rest of the information
|
||||
metrics->width = (x1-x0) * scale;
|
||||
metrics->height = (y1-y0) * scale;
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "cellFontFT.h"
|
||||
|
||||
logs::channel cellFontFT("cellFontFT");
|
||||
LOG_CHANNEL(cellFontFT);
|
||||
|
||||
s32 cellFontInitLibraryFreeTypeWithRevision(u64 revisionFlags, vm::ptr<CellFontLibraryConfigFT> config, vm::pptr<CellFontLibrary> lib)
|
||||
{
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellFs("cellFs");
|
||||
LOG_CHANNEL(cellFs);
|
||||
|
||||
error_code cellFsGetPath(u32 fd, vm::ptr<char> out_path)
|
||||
{
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
#include <thread>
|
||||
|
||||
logs::channel cellGame("cellGame");
|
||||
LOG_CHANNEL(cellGame);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<CellGameError>::format(std::string& out, u64 arg)
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "cellGame.h"
|
||||
|
||||
logs::channel cellGameExec("cellGameExec");
|
||||
LOG_CHANNEL(cellGameExec);
|
||||
|
||||
s32 cellGameSetExitParam(u32 execdata)
|
||||
{
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include <thread>
|
||||
|
||||
logs::channel cellGcmSys("cellGcmSys");
|
||||
LOG_CHANNEL(cellGcmSys);
|
||||
|
||||
extern s32 cellGcmCallback(ppu_thread& ppu, vm::ptr<CellGcmContextData> context, u32 count);
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "pad_thread.h"
|
||||
#include "Utilities/Timer.h"
|
||||
|
||||
logs::channel cellGem("cellGem");
|
||||
LOG_CHANNEL(cellGem);
|
||||
|
||||
// **********************
|
||||
// * HLE helper structs *
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include "Emu/Cell/lv2/sys_fs.h"
|
||||
#include "cellGifDec.h"
|
||||
|
||||
logs::channel cellGifDec("cellGifDec");
|
||||
LOG_CHANNEL(cellGifDec);
|
||||
|
||||
// cellGifDec aliases (only for cellGifDec.cpp)
|
||||
using PPMainHandle = vm::pptr<GifDecoder>;
|
||||
@ -85,7 +85,7 @@ s32 cellGifDecReadHeader(PMainHandle mainHandle, PSubHandle subHandle, PInfo inf
|
||||
const u32& fd = subHandle->fd;
|
||||
const u64& fileSize = subHandle->fileSize;
|
||||
CellGifDecInfo& current_info = subHandle->info;
|
||||
|
||||
|
||||
// Write the header to buffer
|
||||
u8 buffer[13];
|
||||
|
||||
@ -121,7 +121,7 @@ s32 cellGifDecReadHeader(PMainHandle mainHandle, PSubHandle subHandle, PInfo inf
|
||||
current_info.SPixelAspectRatio = buffer[12];
|
||||
|
||||
*info = current_info;
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -168,7 +168,7 @@ s32 cellGifDecDecodeData(PMainHandle mainHandle, PSubHandle subHandle, vm::ptr<u
|
||||
|
||||
const u32& fd = subHandle->fd;
|
||||
const u64& fileSize = subHandle->fileSize;
|
||||
const CellGifDecOutParam& current_outParam = subHandle->outParam;
|
||||
const CellGifDecOutParam& current_outParam = subHandle->outParam;
|
||||
|
||||
//Copy the GIF file to a buffer
|
||||
std::unique_ptr<u8[]> gif(new u8[fileSize]);
|
||||
@ -251,14 +251,14 @@ s32 cellGifDecDecodeData(PMainHandle mainHandle, PSubHandle subHandle, vm::ptr<u
|
||||
uint* img = (uint*)new char[image_size];
|
||||
uint* source_current = (uint*)&(image.get()[0]);
|
||||
uint* dest_current = img;
|
||||
for (uint i = 0; i < image_size / nComponents; i++)
|
||||
for (uint i = 0; i < image_size / nComponents; i++)
|
||||
{
|
||||
uint val = *source_current;
|
||||
*dest_current = (val >> 24) | (val << 8); // set alpha (A8) as leftmost byte
|
||||
source_current++;
|
||||
dest_current++;
|
||||
}
|
||||
memcpy(data.get_ptr(), img, image_size);
|
||||
memcpy(data.get_ptr(), img, image_size);
|
||||
delete[] img;
|
||||
}
|
||||
}
|
||||
@ -306,7 +306,7 @@ DECLARE(ppu_module_manager::cellGifDec)("cellGifDec", []()
|
||||
REG_FUNC(cellGifDec, cellGifDecDecodeData);
|
||||
REG_FUNC(cellGifDec, cellGifDecClose);
|
||||
REG_FUNC(cellGifDec, cellGifDecDestroy);
|
||||
|
||||
|
||||
REG_FUNC(cellGifDec, cellGifDecExtOpen);
|
||||
REG_FUNC(cellGifDec, cellGifDecExtReadHeader);
|
||||
REG_FUNC(cellGifDec, cellGifDecExtSetParameter);
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "cellHttp.h"
|
||||
|
||||
logs::channel cellHttp("cellHttp");
|
||||
LOG_CHANNEL(cellHttp);
|
||||
|
||||
s32 cellHttpAuthCacheExport()
|
||||
{
|
||||
|
@ -11,7 +11,7 @@
|
||||
#pragma comment(lib, "Winhttp.lib")
|
||||
#endif
|
||||
|
||||
logs::channel cellHttpUtil("cellHttpUtil");
|
||||
LOG_CHANNEL(cellHttpUtil);
|
||||
|
||||
s32 cellHttpUtilParseUri(vm::ptr<CellHttpUri> uri, vm::cptr<char> str, vm::ptr<void> pool, u32 size, vm::ptr<u32> required)
|
||||
{
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
#include "cellImeJp.h"
|
||||
|
||||
logs::channel cellImeJp("cellImeJp");
|
||||
LOG_CHANNEL(cellImeJp);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include "Emu/Cell/lv2/sys_fs.h"
|
||||
#include "cellJpgDec.h"
|
||||
|
||||
logs::channel cellJpgDec("cellJpgDec");
|
||||
LOG_CHANNEL(cellJpgDec);
|
||||
|
||||
s32 cellJpgDecCreate(u32 mainHandle, u32 threadInParam, u32 threadOutParam)
|
||||
{
|
||||
@ -120,11 +120,11 @@ s32 cellJpgDecReadHeader(u32 mainHandle, u32 subHandle, vm::ptr<CellJpgDecInfo>
|
||||
if ((le_t<u32>&)(buffer[0]) != 0xE0FFD8FF || // Error: Not a valid SOI header
|
||||
(le_t<u32>&)(buffer[6]) != 0x4649464A) // Error: Not a valid JFIF string
|
||||
{
|
||||
return CELL_JPGDEC_ERROR_HEADER;
|
||||
return CELL_JPGDEC_ERROR_HEADER;
|
||||
}
|
||||
|
||||
u32 i = 4;
|
||||
|
||||
|
||||
if(i >= fileSize)
|
||||
return CELL_JPGDEC_ERROR_HEADER;
|
||||
|
||||
@ -176,7 +176,7 @@ s32 cellJpgDecDecodeData(u32 mainHandle, u32 subHandle, vm::ptr<u8> data, vm::cp
|
||||
|
||||
const u32& fd = subHandle_data->fd;
|
||||
const u64& fileSize = subHandle_data->fileSize;
|
||||
const CellJpgDecOutParam& current_outParam = subHandle_data->outParam;
|
||||
const CellJpgDecOutParam& current_outParam = subHandle_data->outParam;
|
||||
|
||||
//Copy the JPG file to a buffer
|
||||
std::unique_ptr<u8[]> jpg(new u8[fileSize]);
|
||||
@ -264,14 +264,14 @@ s32 cellJpgDecDecodeData(u32 mainHandle, u32 subHandle, vm::ptr<u8> data, vm::cp
|
||||
uint* img = (uint*)new char[image_size];
|
||||
uint* source_current = (uint*)&(image.get()[0]);
|
||||
uint* dest_current = img;
|
||||
for (uint i = 0; i < image_size / nComponents; i++)
|
||||
for (uint i = 0; i < image_size / nComponents; i++)
|
||||
{
|
||||
uint val = *source_current;
|
||||
*dest_current = (val >> 24) | (val << 8); // set alpha (A8) as leftmost byte
|
||||
source_current++;
|
||||
dest_current++;
|
||||
}
|
||||
memcpy(data.get_ptr(), img, image_size);
|
||||
memcpy(data.get_ptr(), img, image_size);
|
||||
delete[] img;
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "cellJpgEnc.h"
|
||||
|
||||
logs::channel cellJpgEnc("cellJpgEnc");
|
||||
LOG_CHANNEL(cellJpgEnc);
|
||||
|
||||
|
||||
s32 cellJpgEncQueryAttr()
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellKey2char("cellKey2char");
|
||||
LOG_CHANNEL(cellKey2char);
|
||||
|
||||
// Return Codes
|
||||
enum CellKey2CharError : u32
|
||||
|
@ -15,7 +15,7 @@ typedef const char *HostCode;
|
||||
|
||||
#include "cellL10n.h"
|
||||
|
||||
logs::channel cellL10n("cellL10n");
|
||||
LOG_CHANNEL(cellL10n);
|
||||
|
||||
// Translate code id to code name. some codepage may has another name.
|
||||
// If this makes your compilation fail, try replace the string code with one in "iconv -l"
|
||||
@ -53,8 +53,8 @@ bool _L10nCodeParse(s32 code, HostCode& retCode)
|
||||
case L10N_CODEPAGE_866: retCode = 866; return true;
|
||||
case L10N_CODEPAGE_932: retCode = 932; return true;
|
||||
case L10N_CODEPAGE_936: retCode = 936; return true; // GBK
|
||||
case L10N_GBK: retCode = 936; return true;
|
||||
case L10N_CODEPAGE_949: retCode = 949; return true; // UHC
|
||||
case L10N_GBK: retCode = 936; return true;
|
||||
case L10N_CODEPAGE_949: retCode = 949; return true; // UHC
|
||||
case L10N_UHC: retCode = 949; return true; // UHC
|
||||
case L10N_CODEPAGE_950: retCode = 950; return true;
|
||||
case L10N_CODEPAGE_1251: retCode = 1251; return true; // CYRL
|
||||
@ -409,7 +409,7 @@ s32 jis2sjis()
|
||||
s32 jstrnchk(vm::cptr<u8> src, s32 src_len)
|
||||
{
|
||||
u8 r = 0;
|
||||
|
||||
|
||||
for (u32 len = 0; len < src_len; len++)
|
||||
{
|
||||
if (src != vm::null)
|
||||
@ -418,14 +418,14 @@ s32 jstrnchk(vm::cptr<u8> src, s32 src_len)
|
||||
{
|
||||
cellL10n.warning("jstrnchk: EUCJP (src=*0x%x, src_len=*0x%x)", src, src_len);
|
||||
r |= L10N_STR_EUCJP;
|
||||
}
|
||||
else if( ((*src >= 0x81 && *src <= 0x9f) || (*src >= 0xe0 && *src <= 0xfc)) || (*src >= 0x40 && *src <= 0xfc && *src != 0x7f) )
|
||||
}
|
||||
else if( ((*src >= 0x81 && *src <= 0x9f) || (*src >= 0xe0 && *src <= 0xfc)) || (*src >= 0x40 && *src <= 0xfc && *src != 0x7f) )
|
||||
{
|
||||
cellL10n.warning("jstrnchk: SJIS (src=*0x%x, src_len=*0x%x)", src, src_len);
|
||||
r |= L10N_STR_SJIS;
|
||||
}
|
||||
// ISO-2022-JP. (JIS X 0202) That's an inaccurate general range which (contains ASCII and UTF-8 characters?).
|
||||
else if (*src >= 0x21 && *src <= 0x7e)
|
||||
else if (*src >= 0x21 && *src <= 0x7e)
|
||||
{
|
||||
cellL10n.warning("jstrnchk: JIS (src=*0x%x, src_len=*0x%x)", src, src_len);
|
||||
r |= L10N_STR_JIS;
|
||||
@ -437,7 +437,7 @@ s32 jstrnchk(vm::cptr<u8> src, s32 src_len)
|
||||
// TODO:
|
||||
// L10N_STR_ASCII
|
||||
// L10N_STR_UTF8
|
||||
|
||||
|
||||
// L10N_STR_UNKNOWN
|
||||
// L10N_STR_ILLEGAL
|
||||
// L10N_STR_ERROR
|
||||
@ -683,7 +683,7 @@ s32 EUCKRtoUHC()
|
||||
s32 UCS2toSJIS(u16 ch, vm::ptr<void> dst)
|
||||
{
|
||||
cellL10n.todo("UCS2toSJIS(ch=%d, dst=*0x%x)", ch, dst);
|
||||
// Should be L10N_UCS2 (16bit) not L10N_UTF8 (8bit) and L10N_SHIFT_JIS
|
||||
// Should be L10N_UCS2 (16bit) not L10N_UTF8 (8bit) and L10N_SHIFT_JIS
|
||||
// return _L10nConvertCharNoResult(L10N_UTF8, &ch, sizeof(ch), L10N_CODEPAGE_932, dst);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellLibprof("cellLibprof");
|
||||
LOG_CHANNEL(cellLibprof);
|
||||
|
||||
s32 cellUserTraceInit()
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellMic.h"
|
||||
|
||||
logs::channel cellMic("cellMic");
|
||||
LOG_CHANNEL(cellMic);
|
||||
|
||||
s32 cellMicInit()
|
||||
{
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
#include "cellMusic.h"
|
||||
|
||||
logs::channel cellMusic("cellMusic");
|
||||
LOG_CHANNEL(cellMusic);
|
||||
|
||||
struct music_t
|
||||
{
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellMusicDecode("cellMusicDecode");
|
||||
LOG_CHANNEL(cellMusicDecode);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellMusicExport("cellMusicExport");
|
||||
LOG_CHANNEL(cellMusicExport);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
#include "Utilities/StrUtil.h"
|
||||
|
||||
logs::channel cellNetCtl("cellNetCtl");
|
||||
LOG_CHANNEL(cellNetCtl);
|
||||
|
||||
template <>
|
||||
void fmt_class_string<CellNetCtlError>::format(std::string& out, u64 arg)
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "cellOskDialog.h"
|
||||
#include "cellMsgDialog.h"
|
||||
|
||||
logs::channel cellOskDialog("cellOskDialog");
|
||||
LOG_CHANNEL(cellOskDialog);
|
||||
|
||||
static char16_t s_osk_text[CELL_OSKDIALOG_STRING_SIZE];
|
||||
|
||||
@ -133,7 +133,7 @@ s32 cellOskDialogSetLayoutMode(s32 layoutMode)
|
||||
s32 cellOskDialogGetInputText(vm::ptr<CellOskDialogCallbackReturnParam> OutputInfo)
|
||||
{
|
||||
cellOskDialog.warning("cellOskDialogGetInputText(OutputInfo=*0x%x)", OutputInfo);
|
||||
return cellOskDialogUnloadAsync(OutputInfo); //Same but for use with cellOskDialogSetSeparateWindowOption(). TODO.
|
||||
return cellOskDialogUnloadAsync(OutputInfo); //Same but for use with cellOskDialogSetSeparateWindowOption(). TODO.
|
||||
}
|
||||
|
||||
s32 cellOskDialogExtInputDeviceUnlock()
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellOvis("cellOvis");
|
||||
LOG_CHANNEL(cellOvis);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -12,7 +12,7 @@ bool squeue_test_exit()
|
||||
return Emu.IsStopped();
|
||||
}
|
||||
|
||||
logs::channel cellPamf("cellPamf");
|
||||
LOG_CHANNEL(cellPamf);
|
||||
|
||||
s32 pamfStreamTypeToEsFilterId(u8 type, u8 ch, CellCodecEsFilterId& pEsFilterId)
|
||||
{
|
||||
@ -20,7 +20,7 @@ s32 pamfStreamTypeToEsFilterId(u8 type, u8 ch, CellCodecEsFilterId& pEsFilterId)
|
||||
verify(HERE), (ch < 16);
|
||||
pEsFilterId.supplementalInfo1 = type == CELL_PAMF_STREAM_TYPE_AVC;
|
||||
pEsFilterId.supplementalInfo2 = 0;
|
||||
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case CELL_PAMF_STREAM_TYPE_AVC:
|
||||
@ -38,7 +38,7 @@ s32 pamfStreamTypeToEsFilterId(u8 type, u8 ch, CellCodecEsFilterId& pEsFilterId)
|
||||
pEsFilterId.filterIdMinor = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_ATRAC3PLUS:
|
||||
{
|
||||
// code = 0xdc
|
||||
@ -46,7 +46,7 @@ s32 pamfStreamTypeToEsFilterId(u8 type, u8 ch, CellCodecEsFilterId& pEsFilterId)
|
||||
pEsFilterId.filterIdMinor = ch;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_PAMF_LPCM:
|
||||
{
|
||||
// code = 0x80
|
||||
@ -62,7 +62,7 @@ s32 pamfStreamTypeToEsFilterId(u8 type, u8 ch, CellCodecEsFilterId& pEsFilterId)
|
||||
pEsFilterId.filterIdMinor = 0x30 | ch;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_USER_DATA:
|
||||
{
|
||||
// code = 0xdd
|
||||
@ -102,7 +102,7 @@ s32 pamfStreamTypeToEsFilterId(u8 type, u8 ch, CellCodecEsFilterId& pEsFilterId)
|
||||
pEsFilterId.filterIdMinor = 0x20 | ch;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
default:
|
||||
{
|
||||
cellPamf.error("pamfStreamTypeToEsFilterId(): unknown type (%d, ch=%d)", type, ch);
|
||||
@ -149,13 +149,13 @@ u8 pamfGetStreamChannel(vm::ptr<CellPamfReader> pSelf, u32 stream)
|
||||
verify(HERE), (header.fid_major & 0xf0) == 0xe0, header.fid_minor == 0;
|
||||
return header.fid_major % 16;
|
||||
}
|
||||
|
||||
|
||||
case 0xdc: // ATRAC3PLUS
|
||||
{
|
||||
verify(HERE), header.fid_major == 0xbd, (header.fid_minor & 0xf0) == 0;
|
||||
return header.fid_minor % 16;
|
||||
}
|
||||
|
||||
|
||||
case 0x80: // LPCM
|
||||
{
|
||||
verify(HERE), header.fid_major == 0xbd, (header.fid_minor & 0xf0) == 0x40;
|
||||
@ -224,7 +224,7 @@ s32 cellPamfVerify(vm::ptr<PamfHeader> pAddr, u64 fileSize)
|
||||
s32 cellPamfReaderInitialize(vm::ptr<CellPamfReader> pSelf, vm::cptr<PamfHeader> pAddr, u64 fileSize, u32 attribute)
|
||||
{
|
||||
cellPamf.warning("cellPamfReaderInitialize(pSelf=*0x%x, pAddr=*0x%x, fileSize=0x%llx, attribute=0x%x)", pSelf, pAddr, fileSize, attribute);
|
||||
|
||||
|
||||
if (fileSize)
|
||||
{
|
||||
pSelf->fileSize = fileSize;
|
||||
@ -286,7 +286,7 @@ u8 cellPamfReaderGetNumberOfStreams(vm::ptr<CellPamfReader> pSelf)
|
||||
u8 cellPamfReaderGetNumberOfSpecificStreams(vm::ptr<CellPamfReader> pSelf, u8 streamType)
|
||||
{
|
||||
cellPamf.warning("cellPamfReaderGetNumberOfSpecificStreams(pSelf=*0x%x, streamType=%d)", pSelf, streamType);
|
||||
|
||||
|
||||
// cannot return error code
|
||||
|
||||
u8 counts[256] = {};
|
||||
@ -307,12 +307,12 @@ u8 cellPamfReaderGetNumberOfSpecificStreams(vm::ptr<CellPamfReader> pSelf, u8 st
|
||||
{
|
||||
return counts[streamType];
|
||||
}
|
||||
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_VIDEO:
|
||||
{
|
||||
return counts[CELL_PAMF_STREAM_TYPE_AVC] + counts[CELL_PAMF_STREAM_TYPE_M2V];
|
||||
}
|
||||
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_AUDIO:
|
||||
{
|
||||
return counts[CELL_PAMF_STREAM_TYPE_ATRAC3PLUS] + counts[CELL_PAMF_STREAM_TYPE_PAMF_LPCM] + counts[CELL_PAMF_STREAM_TYPE_AC3];
|
||||
@ -351,7 +351,7 @@ s32 cellPamfReaderSetStreamWithTypeAndChannel(vm::ptr<CellPamfReader> pSelf, u8
|
||||
|
||||
for (u8 i = 0; i < pSelf->pAddr->stream_count; i++)
|
||||
{
|
||||
if (pamfGetStreamType(pSelf, i) == streamType)
|
||||
if (pamfGetStreamType(pSelf, i) == streamType)
|
||||
{
|
||||
if (pamfGetStreamChannel(pSelf, i) == ch)
|
||||
{
|
||||
@ -388,7 +388,7 @@ s32 cellPamfReaderSetStreamWithTypeAndIndex(vm::ptr<CellPamfReader> pSelf, u8 st
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_AUDIO:
|
||||
{
|
||||
if (type == CELL_PAMF_STREAM_TYPE_ATRAC3PLUS || type == CELL_PAMF_STREAM_TYPE_AC3 || type == CELL_PAMF_STREAM_TYPE_PAMF_LPCM)
|
||||
@ -397,7 +397,7 @@ s32 cellPamfReaderSetStreamWithTypeAndIndex(vm::ptr<CellPamfReader> pSelf, u8 st
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
default:
|
||||
{
|
||||
if (streamType > 5)
|
||||
@ -425,7 +425,7 @@ s32 cellPamfStreamTypeToEsFilterId(u8 type, u8 ch, vm::ptr<CellCodecEsFilterId>
|
||||
{
|
||||
return CELL_PAMF_ERROR_INVALID_ARG;
|
||||
}
|
||||
|
||||
|
||||
return pamfStreamTypeToEsFilterId(type, ch, *pEsFilterId);
|
||||
}
|
||||
|
||||
@ -524,7 +524,7 @@ s32 cellPamfReaderGetStreamInfo(vm::ptr<CellPamfReader> pSelf, vm::ptr<void> pIn
|
||||
info->transferCharacteristics = 0;
|
||||
info->matrixCoefficients = 0;
|
||||
}
|
||||
|
||||
|
||||
info->entropyCodingModeFlag = (header.AVC.x18 & 0x80) >> 7;
|
||||
info->deblockingFilterFlag = (header.AVC.x18 & 0x40) >> 6;
|
||||
info->minNumSlicePerPictureIdc = (header.AVC.x18 & 0x30) >> 4;
|
||||
@ -534,7 +534,7 @@ s32 cellPamfReaderGetStreamInfo(vm::ptr<CellPamfReader> pSelf, vm::ptr<void> pIn
|
||||
cellPamf.notice("cellPamfReaderGetStreamInfo(): CELL_PAMF_STREAM_TYPE_AVC");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_M2V:
|
||||
{
|
||||
if (size < sizeof(CellPamfM2vInfo))
|
||||
@ -592,8 +592,8 @@ s32 cellPamfReaderGetStreamInfo(vm::ptr<CellPamfReader> pSelf, vm::ptr<void> pIn
|
||||
cellPamf.notice("cellPamfReaderGetStreamInfo(): CELL_PAMF_STREAM_TYPE_M2V");
|
||||
break;
|
||||
}
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_ATRAC3PLUS:
|
||||
|
||||
case CELL_PAMF_STREAM_TYPE_ATRAC3PLUS:
|
||||
{
|
||||
if (size < sizeof(CellPamfAtrac3plusInfo))
|
||||
{
|
||||
@ -694,7 +694,7 @@ s32 cellPamfReaderGetStreamInfo(vm::ptr<CellPamfReader> pSelf, vm::ptr<void> pIn
|
||||
return CELL_PAMF_ERROR_INVALID_PAMF;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellPhotoDecode("cellPhotoDecode");
|
||||
LOG_CHANNEL(cellPhotoDecode);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellPhotoExport("cellPhotoExport");
|
||||
LOG_CHANNEL(cellPhotoExport);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellPhotoImportUtil("cellPhotoImportUtil");
|
||||
LOG_CHANNEL(cellPhotoImportUtil);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
@ -46,15 +46,15 @@ enum CellPhotoImportTexRot
|
||||
};
|
||||
|
||||
struct CellPhotoImportFileDataSub
|
||||
{
|
||||
{
|
||||
be_t<s32> width;
|
||||
be_t<s32> height;
|
||||
be_t<CellPhotoImportFormatType> format;
|
||||
be_t<CellPhotoImportTexRot> rotate;
|
||||
};
|
||||
};
|
||||
|
||||
struct CellPhotoImportFileData
|
||||
{
|
||||
{
|
||||
char dstFileName[CELL_FS_MAX_FS_FILE_NAME_LENGTH];
|
||||
char photo_title[CELL_PHOTO_IMPORT_PHOTO_TITLE_MAX_LENGTH * 3];
|
||||
char game_title[CELL_PHOTO_IMPORT_GAME_TITLE_MAX_SIZE];
|
||||
@ -65,7 +65,7 @@ struct CellPhotoImportFileData
|
||||
};
|
||||
|
||||
struct CellPhotoImportSetParam
|
||||
{
|
||||
{
|
||||
be_t<u32> fileSizeMax;
|
||||
vm::bptr<void> reserved1;
|
||||
vm::bptr<void> reserved2;
|
||||
|
@ -19,7 +19,7 @@ typedef png_bytep iCCP_profile_type;
|
||||
typedef png_charp iCCP_profile_type;
|
||||
#endif
|
||||
|
||||
logs::channel cellPngDec("cellPngDec");
|
||||
LOG_CHANNEL(cellPngDec);
|
||||
|
||||
// cellPngDec aliases to improve readability
|
||||
using PPHandle = vm::pptr<PngHandle>;
|
||||
@ -86,7 +86,7 @@ void pngDecReadBuffer(png_structp png_ptr, png_bytep out, png_size_t length)
|
||||
void pngDecRowCallback(png_structp png_ptr, png_bytep new_row, png_uint_32 row_num, int pass)
|
||||
{
|
||||
PngStream* stream = (PngStream*)png_get_progressive_ptr(png_ptr);
|
||||
if (!stream)
|
||||
if (!stream)
|
||||
{
|
||||
cellPngDec.error("Failed to obtain streamPtr in rowCallback.");
|
||||
return;
|
||||
@ -98,9 +98,9 @@ void pngDecRowCallback(png_structp png_ptr, png_bytep new_row, png_uint_32 row_n
|
||||
|
||||
if (stream->ppuContext && (stream->nextRow == row_num || pass > 0))
|
||||
{
|
||||
if (pass > 0 )
|
||||
if (pass > 0 )
|
||||
{
|
||||
stream->cbDispInfo->scanPassCount = pass;
|
||||
stream->cbDispInfo->scanPassCount = pass;
|
||||
stream->cbDispInfo->nextOutputStartY = row_num;
|
||||
}
|
||||
else {
|
||||
@ -113,7 +113,7 @@ void pngDecRowCallback(png_structp png_ptr, png_bytep new_row, png_uint_32 row_n
|
||||
stream->cbDispInfo->outputStartY = row_num;
|
||||
}
|
||||
u8* data;
|
||||
if (pass > 0)
|
||||
if (pass > 0)
|
||||
data = static_cast<u8*>(stream->cbDispParam->nextOutputImage.get_ptr());
|
||||
else
|
||||
data = static_cast<u8*>(stream->cbDispParam->nextOutputImage.get_ptr()) + ((row_num - stream->cbDispInfo->outputStartY) * stream->cbDispInfo->outputFrameWidthByte);
|
||||
@ -121,10 +121,10 @@ void pngDecRowCallback(png_structp png_ptr, png_bytep new_row, png_uint_32 row_n
|
||||
png_progressive_combine_row(png_ptr, data, new_row);
|
||||
}
|
||||
|
||||
void pngDecInfoCallback(png_structp png_ptr, png_infop info)
|
||||
void pngDecInfoCallback(png_structp png_ptr, png_infop info)
|
||||
{
|
||||
PngStream* stream = (PngStream*)png_get_progressive_ptr(png_ptr);
|
||||
if (!stream)
|
||||
if (!stream)
|
||||
{
|
||||
cellPngDec.error("Failed to obtain streamPtr in rowCallback.");
|
||||
return;
|
||||
@ -137,7 +137,7 @@ void pngDecInfoCallback(png_structp png_ptr, png_infop info)
|
||||
void pngDecEndCallback(png_structp png_ptr, png_infop info)
|
||||
{
|
||||
PngStream* stream = (PngStream*)png_get_progressive_ptr(png_ptr);
|
||||
if (!stream)
|
||||
if (!stream)
|
||||
{
|
||||
cellPngDec.error("Failed to obtain streamPtr in endCallback.");
|
||||
return;
|
||||
@ -411,7 +411,7 @@ s32 pngDecOpen(ppu_thread& ppu, PHandle handle, PPStream png_stream, PSrc source
|
||||
{
|
||||
// Open a file stream
|
||||
fs::file file_stream(vfs::get(stream->source.fileName.get_ptr()));
|
||||
|
||||
|
||||
// Check if opening of the PNG file failed
|
||||
if (!file_stream)
|
||||
{
|
||||
@ -475,7 +475,7 @@ s32 pngDecOpen(ppu_thread& ppu, PHandle handle, PPStream png_stream, PSrc source
|
||||
}
|
||||
|
||||
// Set the custom read function for decoding
|
||||
if (control_stream)
|
||||
if (control_stream)
|
||||
{
|
||||
if (open_param && open_param->selectChunk != 0)
|
||||
fmt::throw_exception("Partial Decoding with selectChunk not supported yet.");
|
||||
@ -486,7 +486,7 @@ s32 pngDecOpen(ppu_thread& ppu, PHandle handle, PPStream png_stream, PSrc source
|
||||
png_set_progressive_read_fn(stream->png_ptr, (void *)stream.get_ptr(), pngDecInfoCallback, pngDecRowCallback, pngDecEndCallback);
|
||||
|
||||
// push header tag to libpng to keep us in sync
|
||||
try
|
||||
try
|
||||
{
|
||||
png_process_data(stream->png_ptr, stream->info_ptr, header, 8);
|
||||
}
|
||||
@ -495,7 +495,7 @@ s32 pngDecOpen(ppu_thread& ppu, PHandle handle, PPStream png_stream, PSrc source
|
||||
return CELL_PNGDEC_ERROR_HEADER;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
png_set_read_fn(stream->png_ptr, buffer.get_ptr(), pngDecReadBuffer);
|
||||
|
||||
@ -559,7 +559,7 @@ s32 pngDecSetParameter(PStream stream, PInParam in_param, POutParam out_param, P
|
||||
png_set_keep_unknown_chunks(stream->png_ptr, PNG_HANDLE_CHUNK_IF_SAFE, 0, 0);
|
||||
|
||||
// Scale 16 bit depth down to 8 bit depth.
|
||||
if (stream->info.bitDepth == 16 && in_param->outputBitDepth == 8)
|
||||
if (stream->info.bitDepth == 16 && in_param->outputBitDepth == 8)
|
||||
{
|
||||
// PS3 uses png_set_strip_16, since png_set_scale_16 wasn't available back then.
|
||||
png_set_strip_16(stream->png_ptr);
|
||||
@ -570,24 +570,24 @@ s32 pngDecSetParameter(PStream stream, PInParam in_param, POutParam out_param, P
|
||||
cellPngDec.error("Output depth of 16 with non input depth of 16 specified!");
|
||||
if (in_param->commandPtr != vm::null)
|
||||
cellPngDec.warning("Ignoring CommandPtr.");
|
||||
|
||||
if (stream->info.colorSpace != in_param->outputColorSpace)
|
||||
|
||||
if (stream->info.colorSpace != in_param->outputColorSpace)
|
||||
{
|
||||
// check if we need to set alpha
|
||||
// check if we need to set alpha
|
||||
const bool inputHasAlpha = cellPngColorSpaceHasAlpha(stream->info.colorSpace);
|
||||
const bool outputWantsAlpha = cellPngColorSpaceHasAlpha(in_param->outputColorSpace);
|
||||
|
||||
if (outputWantsAlpha && !inputHasAlpha)
|
||||
if (outputWantsAlpha && !inputHasAlpha)
|
||||
{
|
||||
if (in_param->outputAlphaSelect == CELL_PNGDEC_FIX_ALPHA)
|
||||
png_set_add_alpha(stream->png_ptr, in_param->outputColorAlpha, in_param->outputColorSpace == CELL_PNGDEC_ARGB ? PNG_FILLER_BEFORE : PNG_FILLER_AFTER);
|
||||
else
|
||||
else
|
||||
{
|
||||
// Check if we can steal the alpha from a trns block
|
||||
if (png_get_valid(stream->png_ptr, stream->info_ptr, PNG_INFO_tRNS))
|
||||
png_set_tRNS_to_alpha(stream->png_ptr);
|
||||
// if not, just set default of 0xff
|
||||
else
|
||||
else
|
||||
png_set_add_alpha(stream->png_ptr, 0xff, in_param->outputColorSpace == CELL_PNGDEC_ARGB ? PNG_FILLER_BEFORE : PNG_FILLER_AFTER);
|
||||
}
|
||||
}
|
||||
@ -606,21 +606,21 @@ s32 pngDecSetParameter(PStream stream, PInParam in_param, POutParam out_param, P
|
||||
if (stream->info.colorSpace == CELL_PNGDEC_PALETTE)
|
||||
png_set_palette_to_rgb(stream->png_ptr);
|
||||
if ((stream->info.colorSpace == CELL_PNGDEC_GRAYSCALE || stream->info.colorSpace == CELL_PNGDEC_GRAYSCALE_ALPHA)
|
||||
&& stream->info.bitDepth < 8)
|
||||
&& stream->info.bitDepth < 8)
|
||||
png_set_expand_gray_1_2_4_to_8(stream->png_ptr);
|
||||
}
|
||||
// grayscale output
|
||||
else
|
||||
else
|
||||
{
|
||||
if (stream->info.colorSpace == CELL_PNGDEC_ARGB
|
||||
|| stream->info.colorSpace == CELL_PNGDEC_RGBA
|
||||
|| stream->info.colorSpace == CELL_PNGDEC_RGB)
|
||||
|| stream->info.colorSpace == CELL_PNGDEC_RGB)
|
||||
{
|
||||
|
||||
png_set_rgb_to_gray(stream->png_ptr, PNG_ERROR_ACTION_NONE, PNG_RGB_TO_GRAY_DEFAULT, PNG_RGB_TO_GRAY_DEFAULT);
|
||||
}
|
||||
else {
|
||||
// not sure what to do here
|
||||
// not sure what to do here
|
||||
cellPngDec.error("Grayscale / Palette to Grayscale / Palette conversion currently unsupported.");
|
||||
}
|
||||
}
|
||||
@ -645,7 +645,7 @@ s32 pngDecSetParameter(PStream stream, PInParam in_param, POutParam out_param, P
|
||||
// Set the memory usage. We currently don't actually allocate memory for libpng through the callbacks, due to libpng needing a lot more memory compared to PS3 variant.
|
||||
stream->out_param.useMemorySpace = 0;
|
||||
|
||||
if (extra_in_param)
|
||||
if (extra_in_param)
|
||||
{
|
||||
if (extra_in_param->bufferMode != CELL_PNGDEC_LINE_MODE)
|
||||
{
|
||||
@ -664,14 +664,14 @@ s32 pngDecSetParameter(PStream stream, PInParam in_param, POutParam out_param, P
|
||||
{
|
||||
if (stream->outputCounts == 0)
|
||||
extra_out_param->outputHeight = stream->out_param.outputHeight;
|
||||
else
|
||||
else
|
||||
extra_out_param->outputHeight = std::min(stream->outputCounts, stream->out_param.outputHeight.value());
|
||||
extra_out_param->outputWidthByte = stream->out_param.outputWidthByte;
|
||||
}
|
||||
}
|
||||
|
||||
*out_param = stream->out_param;
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -729,7 +729,7 @@ s32 pngDecodeData(ppu_thread& ppu, PHandle handle, PStream stream, vm::ptr<u8> d
|
||||
if (stream->buffer->length > stream->buffer->cursor)
|
||||
{
|
||||
u8* data = static_cast<u8*>(stream->buffer->data.get_ptr()) + stream->buffer->cursor;
|
||||
try
|
||||
try
|
||||
{
|
||||
png_process_data(stream->png_ptr, stream->info_ptr, data, stream->buffer->length - stream->buffer->cursor);
|
||||
}
|
||||
@ -747,7 +747,7 @@ s32 pngDecodeData(ppu_thread& ppu, PHandle handle, PStream stream, vm::ptr<u8> d
|
||||
{
|
||||
stream->cbCtrlStream.cbCtrlStrmFunc(ppu, streamInfo, streamParam, stream->cbCtrlStream.cbCtrlStrmArg);
|
||||
streamInfo->decodedStrmSize += streamParam->strmSize;
|
||||
try
|
||||
try
|
||||
{
|
||||
png_process_data(stream->png_ptr, stream->info_ptr, static_cast<u8*>(streamParam->strmPtr.get_ptr()), streamParam->strmSize);
|
||||
}
|
||||
@ -767,7 +767,7 @@ s32 pngDecodeData(ppu_thread& ppu, PHandle handle, PStream stream, vm::ptr<u8> d
|
||||
|
||||
// Decode the image
|
||||
// todo: commandptr
|
||||
try
|
||||
try
|
||||
{
|
||||
for (int j = 0; j < stream->passes; j++)
|
||||
{
|
||||
@ -862,7 +862,7 @@ s32 cellPngDecExtReadHeader(PHandle handle, PStream stream, PInfo info, PExtInfo
|
||||
|
||||
// lets push what we have so far
|
||||
u8* data = static_cast<u8*>(stream->buffer->data.get_ptr()) + stream->buffer->cursor;
|
||||
try
|
||||
try
|
||||
{
|
||||
png_process_data(stream->png_ptr, stream->info_ptr, data, stream->buffer->length);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellPngEnc("cellPngEnc");
|
||||
LOG_CHANNEL(cellPngEnc);
|
||||
|
||||
// Error Codes
|
||||
enum
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
#include "cellSysutil.h"
|
||||
|
||||
logs::channel cellPrint("cellPrint");
|
||||
LOG_CHANNEL(cellPrint);
|
||||
|
||||
// Error Codes
|
||||
enum
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellRec("cellRec");
|
||||
LOG_CHANNEL(cellRec);
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellRemotePlay("cellRemotePlay");
|
||||
LOG_CHANNEL(cellRemotePlay);
|
||||
|
||||
s32 cellRemotePlayGetStatus()
|
||||
{
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "Emu/RSX/GCM.h"
|
||||
#include "cellResc.h"
|
||||
|
||||
logs::channel cellResc("cellResc");
|
||||
LOG_CHANNEL(cellResc);
|
||||
|
||||
s32 cellRescInit(vm::ptr<CellRescInitConfig> initConfig)
|
||||
{
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
#include "cellRtc.h"
|
||||
|
||||
logs::channel cellRtc("cellRtc");
|
||||
LOG_CHANNEL(cellRtc);
|
||||
|
||||
s64 convertToUNIXTime(u16 seconds, u16 minutes, u16 hours, u16 days, s32 years)
|
||||
{
|
||||
return (s64)seconds + (s64)minutes * 60 + (s64)hours * 3600 + (s64)days * 86400 +
|
||||
return (s64)seconds + (s64)minutes * 60 + (s64)hours * 3600 + (s64)days * 86400 +
|
||||
(s64)(years - 70) * 31536000 + (s64)((years - 69) / 4) * 86400 -
|
||||
(s64)((years - 1) / 100) * 86400 + (s64)((years + 299) / 400) * 86400;
|
||||
}
|
||||
@ -58,14 +58,14 @@ s32 cellRtcFormatRfc2822LocalTime(vm::ptr<char> pszDateTime, vm::ptr<CellRtcTick
|
||||
s32 cellRtcFormatRfc3339(vm::ptr<char> pszDateTime, vm::ptr<CellRtcTick> pUtc, s32 iTimeZone)
|
||||
{
|
||||
cellRtc.todo("cellRtcFormatRfc3339(pszDateTime=*0x%x, pUtc=*0x%x, iTimeZone=%d)", pszDateTime, pUtc, iTimeZone);
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
s32 cellRtcFormatRfc3339LocalTime(vm::ptr<char> pszDateTime, vm::ptr<CellRtcTick> pUtc)
|
||||
{
|
||||
cellRtc.todo("cellRtcFormatRfc3339LocalTime(pszDateTime=*0x%x, pUtc=*0x%x)", pszDateTime, pUtc);
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ s32 cellRtcGetTick(vm::ptr<CellRtcDateTime> pTime, vm::ptr<CellRtcTick> pTick)
|
||||
s32 cellRtcSetTick(vm::ptr<CellRtcDateTime> pTime, vm::ptr<CellRtcTick> pTick)
|
||||
{
|
||||
cellRtc.todo("cellRtcSetTick(pTime=*0x%x, pTick=*0x%x)", pTime, pTick);
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -107,7 +107,7 @@ s32 cellRtcTickAddTicks(vm::ptr<CellRtcTick> pTick0, vm::ptr<CellRtcTick> pTick1
|
||||
s32 cellRtcTickAddMicroseconds(vm::ptr<CellRtcTick> pTick0, vm::ptr<CellRtcTick> pTick1, s64 lAdd)
|
||||
{
|
||||
cellRtc.todo("cellRtcTickAddMicroseconds(pTick0=*0x%x, pTick1=*0x%x, lAdd=%lld)", pTick0, pTick1, lAdd);
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ s32 cellRtcTickAddSeconds(vm::ptr<CellRtcTick> pTick0, vm::ptr<CellRtcTick> pTic
|
||||
s32 cellRtcTickAddMinutes(vm::ptr<CellRtcTick> pTick0, vm::ptr<CellRtcTick> pTick1, s64 lAdd)
|
||||
{
|
||||
cellRtc.todo("cellRtcTickAddMinutes(pTick0=*0x%x, pTick1=*0x%x, lAdd=%lld)", pTick0, pTick1, lAdd);
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellRtcAlarm("cellRtcAlarm");
|
||||
LOG_CHANNEL(cellRtcAlarm);
|
||||
|
||||
s32 cellRtcAlarmRegister()
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include "cellRudp.h"
|
||||
|
||||
logs::channel cellRudp("cellRudp");
|
||||
LOG_CHANNEL(cellRudp);
|
||||
|
||||
struct rudp_t
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "cellSail.h"
|
||||
#include "cellPamf.h"
|
||||
|
||||
logs::channel cellSail("cellSail");
|
||||
LOG_CHANNEL(cellSail);
|
||||
|
||||
s32 cellSailMemAllocatorInitialize(vm::ptr<CellSailMemAllocator> pSelf, vm::ptr<CellSailMemAllocatorFuncs> pCallbacks)
|
||||
{
|
||||
@ -86,7 +86,7 @@ s32 cellSailDescriptorSetAutoSelection(vm::ptr<CellSailDescriptor> pSelf, b8 aut
|
||||
s32 cellSailDescriptorIsAutoSelection(vm::ptr<CellSailDescriptor> pSelf)
|
||||
{
|
||||
cellSail.warning("cellSailDescriptorIsAutoSelection(pSelf=*0x%x)", pSelf);
|
||||
|
||||
|
||||
if (pSelf)
|
||||
{
|
||||
return pSelf->autoSelection;
|
||||
@ -787,7 +787,7 @@ s32 cellSailPlayerAddDescriptor(vm::ptr<CellSailPlayer> pSelf, vm::ptr<CellSailD
|
||||
s32 cellSailPlayerCreateDescriptor(vm::ptr<CellSailPlayer> pSelf, s32 streamType, vm::ptr<void> pMediaInfo, vm::cptr<char> pUri, vm::pptr<CellSailDescriptor> ppDesc)
|
||||
{
|
||||
cellSail.todo("cellSailPlayerCreateDescriptor(pSelf=*0x%x, streamType=%d, pMediaInfo=*0x%x, pUri=%s, ppDesc=**0x%x)", pSelf, streamType, pMediaInfo, pUri, ppDesc);
|
||||
|
||||
|
||||
u32 descriptorAddress = vm::alloc(sizeof(CellSailDescriptor), vm::main);
|
||||
auto descriptor = vm::ptr<CellSailDescriptor>::make(descriptorAddress);
|
||||
*ppDesc = descriptor;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellSailRec("cellSailRec");
|
||||
LOG_CHANNEL(cellSailRec);
|
||||
|
||||
// Error Codes
|
||||
enum
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include <mutex>
|
||||
#include <algorithm>
|
||||
|
||||
logs::channel cellSaveData("cellSaveData");
|
||||
LOG_CHANNEL(cellSaveData);
|
||||
|
||||
SaveDialogBase::~SaveDialogBase()
|
||||
{
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellScreenshot("cellScreenshot");
|
||||
LOG_CHANNEL(cellScreenshot);
|
||||
|
||||
s32 cellScreenShotSetParameter(vm::cptr<CellScreenShotSetParam> param)
|
||||
{
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include "cellSearch.h"
|
||||
|
||||
logs::channel cellSearch("cellSearch");
|
||||
LOG_CHANNEL(cellSearch);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<CellSearchError>::format(std::string& out, u64 arg)
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellSheap("cellSheap");
|
||||
LOG_CHANNEL(cellSheap);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellSpudll("cellSpudll");
|
||||
LOG_CHANNEL(cellSpudll);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<CellSpudllError>::format(std::string& out, u64 arg)
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include "sysPrxForUser.h"
|
||||
#include "cellSpurs.h"
|
||||
|
||||
logs::channel cellSpurs("cellSpurs");
|
||||
LOG_CHANNEL(cellSpurs);
|
||||
|
||||
error_code sys_spu_image_close(vm::ptr<sys_spu_image> img);
|
||||
|
||||
@ -234,7 +234,7 @@ namespace _spurs
|
||||
{
|
||||
// Create task
|
||||
s32 create_task(vm::ptr<CellSpursTaskset> taskset, vm::ptr<u32> task_id, vm::cptr<void> elf, vm::cptr<void> context, u32 size, vm::ptr<CellSpursTaskLsPattern> ls_pattern, vm::ptr<CellSpursTaskArgument> arg);
|
||||
|
||||
|
||||
// Start task
|
||||
s32 task_start(ppu_thread& ppu, vm::ptr<CellSpursTaskset> taskset, u32 taskId);
|
||||
}
|
||||
@ -1194,7 +1194,7 @@ s32 _spurs::initialize(ppu_thread& ppu, vm::ptr<CellSpurs> spurs, u32 revision,
|
||||
}
|
||||
|
||||
spurs->traceBuffer = vm::null;
|
||||
// TODO: Register libprof for user trace
|
||||
// TODO: Register libprof for user trace
|
||||
|
||||
// Initialise the event port multiplexor
|
||||
_spurs::init_event_port_mux(spurs.ptr(&CellSpurs::eventPortMux), spurs->spuPort, spurs->eventPort, 3);
|
||||
@ -1210,7 +1210,7 @@ s32 _spurs::initialize(ppu_thread& ppu, vm::ptr<CellSpurs> spurs, u32 revision,
|
||||
return cellSpursWakeUp(ppu, spurs);
|
||||
}
|
||||
|
||||
return CELL_OK;
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
/// Initialize SPURS
|
||||
@ -2047,7 +2047,7 @@ s32 _cellSpursWorkloadAttributeInitialize(vm::ptr<CellSpursWorkloadAttribute> at
|
||||
{
|
||||
return CELL_SPURS_POLICY_MODULE_ERROR_INVAL;
|
||||
}
|
||||
|
||||
|
||||
memset(attr.get_ptr(), 0, sizeof(CellSpursWorkloadAttribute));
|
||||
attr->revision = revision;
|
||||
attr->sdkVersion = sdkVersion;
|
||||
@ -2121,7 +2121,7 @@ s32 _spurs::add_workload(vm::ptr<CellSpurs> spurs, vm::ptr<u32> wid, vm::cptr<vo
|
||||
{
|
||||
return CELL_SPURS_POLICY_MODULE_ERROR_STAT;
|
||||
}
|
||||
|
||||
|
||||
u32 wnum;
|
||||
const u32 wmax = spurs->flags1 & SF1_32_WORKLOADS ? 0x20u : 0x10u; // TODO: check if can be changed
|
||||
spurs->wklEnabled.atomic_op([spurs, wmax, &wnum](be_t<u32>& value)
|
||||
@ -2349,7 +2349,7 @@ s32 cellSpursWakeUp(ppu_thread& ppu, vm::ptr<CellSpurs> spurs)
|
||||
{
|
||||
_spurs::signal_to_handler_thread(ppu, spurs);
|
||||
}
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -2763,7 +2763,7 @@ s32 cellSpursEventFlagSet(ppu_thread& ppu, vm::ptr<CellSpursEventFlag> eventFlag
|
||||
|
||||
// Unblock the waiting SPU task if either all the bits being waited by the task have been set or
|
||||
// if the wait mode of the task is OR and atleast one bit the thread is waiting on has been set
|
||||
if ((eventFlag->spuTaskWaitMask[i] & ~spuTaskRelevantEvents) == 0 ||
|
||||
if ((eventFlag->spuTaskWaitMask[i] & ~spuTaskRelevantEvents) == 0 ||
|
||||
(((eventFlag->spuTaskWaitMode >> j) & 0x0001) == CELL_SPURS_EVENT_FLAG_OR && spuTaskRelevantEvents != 0))
|
||||
{
|
||||
eventsToClear |= spuTaskRelevantEvents;
|
||||
@ -3560,13 +3560,13 @@ s32 cellSpursCreateTask(ppu_thread& ppu, vm::ptr<CellSpursTaskset> taskset, vm::
|
||||
}
|
||||
|
||||
auto rc = _spurs::create_task(taskset, taskId, elf, context, size, lsPattern, argument);
|
||||
if (rc != CELL_OK)
|
||||
if (rc != CELL_OK)
|
||||
{
|
||||
return rc;
|
||||
}
|
||||
|
||||
rc = _spurs::task_start(ppu, taskset, *taskId);
|
||||
if (rc != CELL_OK)
|
||||
if (rc != CELL_OK)
|
||||
{
|
||||
return rc;
|
||||
}
|
||||
@ -4138,7 +4138,7 @@ s32 cellSpursSemaphoreGetTasksetAddress()
|
||||
|
||||
DECLARE(ppu_module_manager::cellSpurs)("cellSpurs", []()
|
||||
{
|
||||
// Core
|
||||
// Core
|
||||
REG_FUNC(cellSpurs, cellSpursInitialize);
|
||||
REG_FUNC(cellSpurs, cellSpursInitializeWithAttribute);
|
||||
REG_FUNC(cellSpurs, cellSpursInitializeWithAttribute2);
|
||||
@ -4235,7 +4235,7 @@ DECLARE(ppu_module_manager::cellSpurs)("cellSpurs", []()
|
||||
REG_FUNC(cellSpurs, cellSpursJobGuardInitialize);
|
||||
REG_FUNC(cellSpurs, cellSpursJobGuardNotify);
|
||||
REG_FUNC(cellSpurs, cellSpursJobGuardReset);
|
||||
|
||||
|
||||
// LFQueue
|
||||
REG_FUNC(cellSpurs, _cellSpursLFQueueInitialize);
|
||||
REG_FUNC(cellSpurs, _cellSpursLFQueuePushBody);
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "cellSpurs.h"
|
||||
#include "cellSpursJq.h"
|
||||
|
||||
logs::channel cellSpursJq("cellSpursJq");
|
||||
LOG_CHANNEL(cellSpursJq);
|
||||
|
||||
s32 cellSpursJobQueueAttributeInitialize()
|
||||
{
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include "Utilities/File.h"
|
||||
#include "Emu/VFS.h"
|
||||
|
||||
logs::channel cellSsl("cellSsl");
|
||||
LOG_CHANNEL(cellSsl);
|
||||
|
||||
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "cellSubDisplay.h"
|
||||
|
||||
logs::channel cellSubDisplay("cellSubDisplay");
|
||||
LOG_CHANNEL(cellSubDisplay);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<CellSubDisplayError>::format(std::string& out, u64 arg)
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "Emu/Cell/lv2/sys_process.h"
|
||||
#include "cellSync.h"
|
||||
|
||||
logs::channel cellSync("cellSync");
|
||||
LOG_CHANNEL(cellSync);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<CellSyncError>::format(std::string& out, u64 arg)
|
||||
@ -516,7 +516,7 @@ error_code cellSyncQueuePop(ppu_thread& ppu, vm::ptr<CellSyncQueue> queue, vm::p
|
||||
}
|
||||
|
||||
const u32 depth = queue->check_depth();
|
||||
|
||||
|
||||
u32 position;
|
||||
|
||||
while (!queue->ctrl.atomic_op(&CellSyncQueue::try_pop_begin, depth, &position))
|
||||
@ -549,7 +549,7 @@ error_code cellSyncQueueTryPop(vm::ptr<CellSyncQueue> queue, vm::ptr<void> buffe
|
||||
const u32 depth = queue->check_depth();
|
||||
|
||||
u32 position;
|
||||
|
||||
|
||||
if (!queue->ctrl.atomic_op(&CellSyncQueue::try_pop_begin, depth, &position))
|
||||
{
|
||||
return not_an_error(CELL_SYNC_ERROR_BUSY);
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
#include "Utilities/StrUtil.h"
|
||||
|
||||
logs::channel cellSync2("cellSync2");
|
||||
LOG_CHANNEL(cellSync2);
|
||||
|
||||
vm::gvar<CellSync2CallerThreadType> gCellSync2CallerThreadTypePpuThread;
|
||||
vm::gvar<CellSync2Notifier> gCellSync2NotifierPpuThread;
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellSysconf.h"
|
||||
|
||||
logs::channel cellSysconf("cellSysconf");
|
||||
LOG_CHANNEL(cellSysconf);
|
||||
|
||||
s32 cellSysconfAbort()
|
||||
{
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellSysmodule("cellSysmodule");
|
||||
LOG_CHANNEL(cellSysmodule);
|
||||
|
||||
enum
|
||||
{
|
||||
@ -321,7 +321,7 @@ s32 cellSysmoduleUnloadModule(u16 id)
|
||||
|
||||
// m->Unload();
|
||||
//}
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include <mutex>
|
||||
#include <queue>
|
||||
|
||||
logs::channel cellSysutil("cellSysutil");
|
||||
LOG_CHANNEL(cellSysutil);
|
||||
|
||||
struct sysutil_cb_manager
|
||||
{
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellSysutilAp("cellSysutilAp");
|
||||
LOG_CHANNEL(cellSysutilAp);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellSysutilAvc("cellSysutilAvc");
|
||||
LOG_CHANNEL(cellSysutilAvc);
|
||||
|
||||
s32 cellSysutilAvcByeRequest()
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "sceNp2.h"
|
||||
#include "cellSysutilAvc2.h"
|
||||
|
||||
logs::channel cellSysutilAvc2("cellSysutilAvc2");
|
||||
LOG_CHANNEL(cellSysutilAvc2);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<CellSysutilAvc2Error>::format(std::string& out, u64 arg)
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellSysutilMisc("cellSysutilMisc");
|
||||
LOG_CHANNEL(cellSysutilMisc);
|
||||
|
||||
// License areas
|
||||
enum
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellSysutilNpEula("cellSysutilNpEula");
|
||||
LOG_CHANNEL(cellSysutilNpEula);
|
||||
|
||||
s32 cellSysutilNpEula_59D1629A() // Resistance 3, Uncharted 2
|
||||
{
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
#include "cellUsbd.h"
|
||||
|
||||
logs::channel cellUsbd("cellUsbd");
|
||||
LOG_CHANNEL(cellUsbd);
|
||||
|
||||
s32 cellUsbdInit()
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cellUsbPspcm("cellUsbPspcm");
|
||||
LOG_CHANNEL(cellUsbPspcm);
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include "Utilities/StrUtil.h"
|
||||
#include "cellSysutil.h"
|
||||
|
||||
logs::channel cellUserInfo("cellUserInfo");
|
||||
LOG_CHANNEL(cellUserInfo);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<CellUserInfoError>::format(std::string& out, u64 arg)
|
||||
|
@ -22,7 +22,7 @@ extern "C"
|
||||
|
||||
std::mutex g_mutex_avcodec_open2;
|
||||
|
||||
logs::channel cellVdec("cellVdec");
|
||||
LOG_CHANNEL(cellVdec);
|
||||
|
||||
vm::gvar<s32> _cell_vdec_prx_ver; // ???
|
||||
|
||||
@ -345,7 +345,7 @@ struct vdec_thread : ppu_thread
|
||||
// Hack
|
||||
cellVdec.error("Unsupported time_base.num (%d/%d, tpf=%d)", ctx->time_base.den, ctx->time_base.num, ctx->ticks_per_frame);
|
||||
amend = u64{90000} / 30;
|
||||
frame.frc = CELL_VDEC_FRC_30;
|
||||
frame.frc = CELL_VDEC_FRC_30;
|
||||
}
|
||||
|
||||
next_pts += amend;
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel cellVideoExport("cellVideoExport");
|
||||
LOG_CHANNEL(cellVideoExport);
|
||||
|
||||
struct CellVideoExportSetParam
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "cellVideoUpload.h"
|
||||
#include "cellSysutil.h"
|
||||
|
||||
logs::channel cellVideoUpload("cellVideoUpload");
|
||||
LOG_CHANNEL(cellVideoUpload);
|
||||
|
||||
error_code cellVideoUploadInitialize(vm::cptr<CellVideoUploadParam> pParam, vm::ptr<CellVideoUploadCallback> cb, vm::ptr<void> userdata)
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "cellVoice.h"
|
||||
|
||||
logs::channel cellVoice("cellVoice");
|
||||
LOG_CHANNEL(cellVoice);
|
||||
|
||||
|
||||
s32 cellVoiceConnectIPortToOPort()
|
||||
|
@ -10,7 +10,7 @@ extern "C"
|
||||
|
||||
#include "cellVpost.h"
|
||||
|
||||
logs::channel cellVpost("cellVpost");
|
||||
LOG_CHANNEL(cellVpost);
|
||||
|
||||
s32 cellVpostQueryAttr(vm::cptr<CellVpostCfgParam> cfgParam, vm::ptr<CellVpostAttr> attr)
|
||||
{
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel cell_FreeType2("cell_FreeType2");
|
||||
LOG_CHANNEL(cell_FreeType2);
|
||||
|
||||
// Functions
|
||||
s32 cellFreeType2Ex()
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel libmedi("libmedi");
|
||||
LOG_CHANNEL(libmedi);
|
||||
|
||||
s32 cellMediatorCloseContext()
|
||||
{
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include <thread>
|
||||
#include <mutex>
|
||||
|
||||
logs::channel libmixer("libmixer");
|
||||
LOG_CHANNEL(libmixer);
|
||||
|
||||
struct SurMixerConfig
|
||||
{
|
||||
@ -91,7 +91,7 @@ s32 cellAANAddData(u32 aan_handle, u32 aan_port, u32 offset, vm::ptr<float> addr
|
||||
const float center = addr[i];
|
||||
g_surmx.mixdata[i * 8 + 0] += center;
|
||||
g_surmx.mixdata[i * 8 + 1] += center;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (type == CELL_SURMIXER_CHSTRIP_TYPE2A)
|
||||
{
|
||||
@ -132,7 +132,7 @@ s32 cellAANAddData(u32 aan_handle, u32 aan_port, u32 offset, vm::ptr<float> addr
|
||||
}
|
||||
}
|
||||
|
||||
return CELL_OK;
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
s32 cellAANConnect(u32 receive, u32 receivePortNo, u32 source, u32 sourcePortNo)
|
||||
@ -170,7 +170,7 @@ s32 cellAANDisconnect(u32 receive, u32 receivePortNo, u32 source, u32 sourcePort
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
||||
s32 cellSSPlayerCreate(vm::ptr<u32> handle, vm::ptr<CellSSPlayerConfig> config)
|
||||
{
|
||||
libmixer.warning("cellSSPlayerCreate(handle=*0x%x, config=*0x%x)", handle, config);
|
||||
@ -188,7 +188,7 @@ s32 cellSSPlayerCreate(vm::ptr<u32> handle, vm::ptr<CellSSPlayerConfig> config)
|
||||
p.m_connected = false;
|
||||
p.m_active = false;
|
||||
p.m_channels = config->channels;
|
||||
|
||||
|
||||
g_ssp.push_back(p);
|
||||
*handle = (u32)g_ssp.size() - 1;
|
||||
return CELL_OK;
|
||||
@ -292,7 +292,7 @@ s32 cellSSPlayerSetParam(u32 handle, vm::ptr<CellSSPlayerRuntimeInfo> info)
|
||||
}
|
||||
|
||||
// TODO: check parameters
|
||||
|
||||
|
||||
g_ssp[handle].m_level = info->level;
|
||||
g_ssp[handle].m_speed = info->speed;
|
||||
g_ssp[handle].m_x = info->position.x;
|
||||
@ -301,7 +301,7 @@ s32 cellSSPlayerSetParam(u32 handle, vm::ptr<CellSSPlayerRuntimeInfo> info)
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
||||
s32 cellSSPlayerGetState(u32 handle)
|
||||
{
|
||||
libmixer.warning("cellSSPlayerGetState(handle=0x%x)", handle);
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "libsnd3.h"
|
||||
|
||||
logs::channel libsnd3("libsnd3");
|
||||
LOG_CHANNEL(libsnd3);
|
||||
|
||||
s32 cellSnd3Init(u32 maxVoice, u32 samples, vm::ptr<CellSnd3RequestQueueCtx> queue)
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel libsynth2("libsynth2");
|
||||
LOG_CHANNEL(libsynth2);
|
||||
|
||||
s32 cellSoundSynth2Config(s16 param, s32 value)
|
||||
{
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include "sceNp.h"
|
||||
#include "cellSysutil.h"
|
||||
|
||||
logs::channel sceNp("sceNp");
|
||||
LOG_CHANNEL(sceNp);
|
||||
|
||||
s32 g_psn_connection_status = SCE_NP_MANAGER_STATUS_OFFLINE;
|
||||
|
||||
@ -89,7 +89,7 @@ s32 npDrmIsAvailable(vm::cptr<u8> k_licensee_addr, vm::cptr<char> drm_path)
|
||||
sceNp.error("npDrmIsAvailable(): Failed to verify sce file %s", enc_drm_path);
|
||||
return SCE_NP_DRM_ERROR_NO_ENTITLEMENT;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else if (magic == "NPD\0"_u32)
|
||||
{
|
||||
@ -204,7 +204,7 @@ s32 sceNpDrmProcessExitSpawn(ppu_thread& ppu, vm::cptr<u8> klicensee, vm::cptr<c
|
||||
s32 sceNpDrmProcessExitSpawn2(ppu_thread& ppu, vm::cptr<u8> klicensee, vm::cptr<char> path, vm::cpptr<char> argv, vm::cpptr<char> envp, u32 data, u32 data_size, s32 prio, u64 flags)
|
||||
{
|
||||
sceNp.warning("sceNpDrmProcessExitSpawn2(klicensee=*0x%x, path=%s, argv=**0x%x, envp=**0x%x, data=*0x%x, data_size=0x%x, prio=%d, flags=0x%x)", klicensee, path, argv, envp, data, data_size, prio, flags);
|
||||
|
||||
|
||||
if (s32 error = npDrmIsAvailable(klicensee, path))
|
||||
{
|
||||
return error;
|
||||
@ -1190,12 +1190,12 @@ s32 sceNpManagerRequestTicket()
|
||||
s32 sceNpManagerRequestTicket2()
|
||||
{
|
||||
UNIMPLEMENTED_FUNC(sceNp);
|
||||
|
||||
|
||||
if (g_psn_connection_status == SCE_NP_MANAGER_STATUS_OFFLINE)
|
||||
{
|
||||
return SCE_NP_ERROR_OFFLINE;
|
||||
}
|
||||
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "sceNp.h"
|
||||
#include "sceNp2.h"
|
||||
|
||||
logs::channel sceNp2("sceNp2");
|
||||
LOG_CHANNEL(sceNp2);
|
||||
|
||||
s32 sceNp2Init(u32 poolsize, vm::ptr<void> poolptr)
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "sceNp.h"
|
||||
#include "sceNpClans.h"
|
||||
|
||||
logs::channel sceNpClans("sceNpClans");
|
||||
LOG_CHANNEL(sceNpClans);
|
||||
|
||||
s32 sceNpClansInit(vm::ptr<SceNpCommunicationId> commId, vm::ptr<SceNpCommunicationPassphrase> passphrase, vm::ptr<void> pool, vm::ptr<u32> poolSize, u32 flags)
|
||||
{
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "sceNpCommerce2.h"
|
||||
|
||||
logs::channel sceNpCommerce2("sceNpCommerce2");
|
||||
LOG_CHANNEL(sceNpCommerce2);
|
||||
|
||||
s32 sceNpCommerce2ExecuteStoreBrowse()
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel sceNpMatchingInt("sceNpMatchingInt");
|
||||
LOG_CHANNEL(sceNpMatchingInt);
|
||||
|
||||
s32 sceNpMatchingGetRoomMemberList()
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "sceNpSns.h"
|
||||
|
||||
logs::channel sceNpSns("sceNpSns");
|
||||
LOG_CHANNEL(sceNpSns);
|
||||
|
||||
template<>
|
||||
void fmt_class_string<sceNpSnsError>::format(std::string& out, u64 arg)
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
#include "Utilities/StrUtil.h"
|
||||
|
||||
logs::channel sceNpTrophy("sceNpTrophy");
|
||||
LOG_CHANNEL(sceNpTrophy);
|
||||
|
||||
TrophyNotificationBase::~TrophyNotificationBase()
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "sceNp.h"
|
||||
#include "sceNpTus.h"
|
||||
|
||||
logs::channel sceNpTus("sceNpTus");
|
||||
LOG_CHANNEL(sceNpTus);
|
||||
|
||||
s32 sceNpTusInit()
|
||||
{
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "sceNp.h"
|
||||
#include "sceNpUtil.h"
|
||||
|
||||
logs::channel sceNpUtil("sceNpUtil");
|
||||
LOG_CHANNEL(sceNpUtil);
|
||||
|
||||
s32 sceNpUtilBandwidthTestInitStart(u32 prio, size_t stack)
|
||||
{
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include "Emu/Cell/lv2/sys_tty.h"
|
||||
#include "sysPrxForUser.h"
|
||||
|
||||
logs::channel sysPrxForUser("sysPrxForUser");
|
||||
LOG_CHANNEL(sysPrxForUser);
|
||||
|
||||
extern u64 get_system_time();
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Cell/PPUModule.h"
|
||||
|
||||
logs::channel sys_io("sys_io");
|
||||
LOG_CHANNEL(sys_io);
|
||||
|
||||
extern void cellPad_init();
|
||||
extern void cellKb_init();
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel sys_libc("sys_libc");
|
||||
LOG_CHANNEL(sys_libc);
|
||||
|
||||
void sys_libc_memcpy(vm::ptr<void> dst, vm::cptr<void> src, u32 size)
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include "sys_lv2dbg.h"
|
||||
|
||||
logs::channel sys_lv2dbg("sys_lv2dbg");
|
||||
LOG_CHANNEL(sys_lv2dbg);
|
||||
|
||||
template <>
|
||||
void fmt_class_string<CellLv2DbgError>::format(std::string& out, u64 arg)
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
|
||||
|
||||
logs::channel libnet("libnet");
|
||||
LOG_CHANNEL(libnet);
|
||||
|
||||
struct sys_net_tls_data
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user