]> git.proxmox.com Git - qemu.git/blobdiff - hw/alpha_palcode.c
Convert references to logfile/loglevel to use qemu_log*() macros
[qemu.git] / hw / alpha_palcode.c
index 50ce92cb839b40c08f85b5580eeb49dff60f5f06..bfffb5d29cdab0a48c1795e147c8f039e5f34420 100644 (file)
@@ -15,7 +15,7 @@
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA
  */
 
 #include <stdint.h>
@@ -55,7 +55,7 @@ pal_handler_t pal_handlers[] = {
 };
 
 #if 0
-/* One must explicitely check that the TB is valid and the FOE bit is reset */
+/* One must explicitly check that the TB is valid and the FOE bit is reset */
 static void update_itb (void)
 {
     /* This writes into a temp register, not the actual one */
@@ -998,12 +998,12 @@ int cpu_ppc_handle_mmu_fault (CPUState *env, uint32_t address, int rw,
     uint64_t physical, page_size, end;
     int prot, zbits, ret;
 
-    if (env->user_mode_only) {
+#if defined(CONFIG_USER_ONLY)
         ret = 2;
-    } else {
+#else
         ret = virtual_to_physical(env, &physical, &zbits, &prot,
                                   address, mmu_idx, rw);
-    }
+#endif
     switch (ret) {
     case 0:
         /* No fault */
@@ -1059,41 +1059,36 @@ void pal_init (CPUState *env)
 
 void call_pal (CPUState *env, int palcode)
 {
-    target_ulong ret;
+    target_long ret;
 
-    printf("%s: palcode %02x\n", __func__, palcode);
-    if (logfile != NULL)
-        fprintf(logfile, "%s: palcode %02x\n", __func__, palcode);
+    qemu_log("%s: palcode %02x\n", __func__, palcode);
     switch (palcode) {
     case 0x83:
         /* CALLSYS */
-        printf("CALLSYS n " TARGET_FMT_ld "\n", env->ir[0]);
-        if (logfile != NULL)
-            fprintf(logfile, "CALLSYS n " TARGET_FMT_ld "\n", env->ir[0]);
+        qemu_log("CALLSYS n " TARGET_FMT_ld "\n", env->ir[0]);
         ret = do_syscall(env, env->ir[IR_V0], env->ir[IR_A0], env->ir[IR_A1],
                          env->ir[IR_A2], env->ir[IR_A3], env->ir[IR_A4],
                          env->ir[IR_A5]);
-        env->ir[IR_A3] = ret;
-        if (ret > (target_ulong)(-515)) {
-            env->ir[IR_V0] = 1;
+        if (ret >= 0) {
+            env->ir[IR_A3] = 0;
+            env->ir[IR_V0] = ret;
         } else {
-            env->ir[IR_V0] = 0;
+            env->ir[IR_A3] = 1;
+            env->ir[IR_V0] = -ret;
         }
         break;
     case 0x9E:
         /* RDUNIQUE */
         env->ir[IR_V0] = env->unique;
-        printf("RDUNIQUE: " TARGET_FMT_lx "\n", env->unique);
+        qemu_log("RDUNIQUE: " TARGET_FMT_lx "\n", env->unique);
         break;
     case 0x9F:
         /* WRUNIQUE */
         env->unique = env->ir[IR_A0];
-        printf("WRUNIQUE: " TARGET_FMT_lx "\n", env->unique);
+        qemu_log("WRUNIQUE: " TARGET_FMT_lx "\n", env->unique);
         break;
     default:
-        printf("%s: unhandled palcode %02x\n", __func__, palcode);
-        if (logfile != NULL)
-            fprintf(logfile, "%s: unhandled palcode %02x\n",
+        qemu_log("%s: unhandled palcode %02x\n",
                     __func__, palcode);
         exit(1);
     }