Result y2rInit(void) { Result ret = 0; if (AtomicPostIncrement(&y2rRefCount)) return 0; ret = srvGetServiceHandle(&y2rHandle, "y2r:u"); if (R_SUCCEEDED(ret)) { ret = Y2RU_DriverInitialize(); if (R_FAILED(ret)) svcCloseHandle(y2rHandle); } if (R_FAILED(ret)) AtomicDecrement(&y2rRefCount); return ret; }
Result y2rInit(void) { Result ret = 0; if (initialized) return 0; if (y2rHandle == 0) { ret = srvGetServiceHandle(&y2rHandle, "y2r:u"); if (ret < 0) return ret; } ret = Y2RU_DriverInitialize(); if (ret < 0) return ret; initialized = true; return 0; }