Merge branch 'upstream'
[nvidia.git] / src / nvidia_os.c
index f1ebea4..32941eb 100644 (file)
@@ -148,6 +148,16 @@ U032 NV_API_CALL os_get_current_process(void)
     return curproc->p_pid;
 }
 
+RM_STATUS NV_API_CALL os_get_current_thread(NvU64 *threadId)
+{
+    if (__NV_ITHREAD())
+        *threadId = 0;
+    else
+        *threadId = (NvU64)(uintptr_t) CURTHREAD;
+
+    return RM_OK;
+}
+
 RM_STATUS NV_API_CALL os_get_current_time(
     U032 *sec,
     U032 *usec
@@ -173,7 +183,6 @@ BOOL NV_API_CALL os_is_administrator(PHWINFO pDev)
 }
 
 U008 NV_API_CALL os_io_read_byte(
-    PHWINFO pDev,
     U032 address
 )
 {
@@ -182,7 +191,6 @@ U008 NV_API_CALL os_io_read_byte(
 }
 
 void NV_API_CALL os_io_write_byte(
-    PHWINFO pDev,
     U032 address,
     U008 value
 )
@@ -192,7 +200,6 @@ void NV_API_CALL os_io_write_byte(
 }
 
 U016 NV_API_CALL os_io_read_word(
-    PHWINFO pDev,
     U032 address
 )
 {
@@ -201,7 +208,6 @@ U016 NV_API_CALL os_io_read_word(
 }
 
 void NV_API_CALL os_io_write_word(
-    PHWINFO pDev,
     U032 address,
     U016 value
 )
@@ -211,7 +217,6 @@ void NV_API_CALL os_io_write_word(
 }
 
 U032 NV_API_CALL os_io_read_dword(
-    PHWINFO pDev,
     U032 address
 )
 {
@@ -220,7 +225,6 @@ U032 NV_API_CALL os_io_read_dword(
 }
 
 void NV_API_CALL os_io_write_dword(
-    PHWINFO pDev,
     U032 address,
     U032 value
 )
@@ -621,21 +625,21 @@ RM_STATUS NV_API_CALL os_acquire_sema(void *semaphore)
     return RM_OK;
 }
 
-BOOL NV_API_CALL os_cond_acquire_sema(void *semaphore)
+RM_STATUS NV_API_CALL os_cond_acquire_sema(void *semaphore)
 {
     struct os_mutex *mtx = semaphore;
 
     spin_lock_wr(&mtx->lock);
     if (mtx->refcnt < 1) {
         spin_unlock_wr(&mtx->lock);
-        return FALSE;
+        return RM_ERROR;
     } else {
         rm_disable_interrupts(mtx->sp);
         mtx->refcnt--;
         spin_unlock_wr(&mtx->lock);
     }
 
-    return TRUE;
+    return RM_OK;
 }
 
 RM_STATUS NV_API_CALL os_release_sema(void *semaphore)
@@ -691,7 +695,6 @@ RM_STATUS NV_API_CALL os_enable_console_access(void)
 {
     return RM_OK;
 }
-
 NvU64 NV_API_CALL os_acquire_spinlock(void *pSema)
 {
     struct os_mutex *mtx = pSema;
@@ -708,4 +711,13 @@ void NV_API_CALL os_release_spinlock(void *pSema, NvU64 oldIrql)
     spin_unlock_wr(&mtx->lock);
 }
 
+RM_STATUS NV_API_CALL os_get_address_space_info(
+    NvU64 *userStartAddress,
+    NvU64 *userEndAddress,
+    NvU64 *kernelStartAddress,
+    NvU64 *kernelEndAddress
+)
+{
+    return RM_ERR_NOT_SUPPORTED;
+}