Changeset 12990


Ignore:
Timestamp:
Oct 10, 2009, 2:40:11 PM (10 years ago)
Author:
gz
Message:

more windows/mac changes

Location:
branches/working-0711/ccl/lisp-kernel
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/lisp-kernel/lisp-debug.c

    r12198 r12990  
    2828#include <stdio.h>
    2929
    30 #ifndef WINDOWS
     30#ifdef WINDOWS
     31#include <fcntl.h>
     32#else
    3133#include <sys/socket.h>
    3234#include <dlfcn.h>
     
    5153  if (f) {
    5254    if (setvbuf(f, NULL, _IONBF, 0) == 0) {
     55#ifdef WINDOWS
     56      if (fileno(stdin) < 0) {
     57        stdin->_file = 0;
     58      }
     59#endif
    5360      dbgout = f;
    5461      return true;
     
    100107          (fd0stat.st_dev == devnullstat.st_dev));
    101108}
    102 
    103 #endif
     109#endif
     110
     111#ifdef WINDOWS
     112Boolean
     113stdin_is_dev_null()
     114{
     115  HANDLE stdIn;
     116  stdIn = GetStdHandle(STD_INPUT_HANDLE);
     117  return (stdIn == NULL);
     118}
     119#endif
     120
     121
     122
    104123
    105124char *
     
    145164    switch(c) {
    146165    case '\n':
     166      continue;
     167    case '\r':
    147168      continue;
    148169    case EOF:
     
    694715{
    695716
     717
    696718#ifdef PPC
    697719#ifdef PPC64
     
    11201142  debug_command_return state = debug_continue;
    11211143
     1144
     1145  if (stdin_is_dev_null()) {
     1146    return -1;
     1147  }
     1148
    11221149  va_start(args,message);
    11231150  vfprintf(dbgout, message, args);
    11241151  fprintf(dbgout, "\n");
    11251152  va_end(args);
    1126  
    1127 
    1128 #ifndef WINDOWS
    1129   if (stdin_is_dev_null()) {
    1130     return -1;
    1131   }
    1132 #endif
     1153
    11331154  if (threads_initialized) {
    11341155    suspend_other_threads(false);
     
    11751196    fprintf(dbgout, "[%d] Clozure CL kernel debugger: ", main_thread_pid);
    11761197#endif
     1198    fflush(dbgout);             /* dbgout should be unbuffered, so this shouldn't be necessary.  But it can't hurt ... */
    11771199    state = apply_debug_command(xp, readc(), info, why);
    11781200  }
  • branches/working-0711/ccl/lisp-kernel/lisp.h

    r12198 r12990  
    3434
    3535extern Boolean use_mach_exception_handling;
    36 #ifdef DARWIN
    37 extern Boolean running_under_rosetta;
    38 #endif
    3936
    4037extern int page_size, log2_page_size;
  • branches/working-0711/ccl/lisp-kernel/m4macros.m4

    r11412 r12990  
    331331equate_if_defined([DARWIN_GS_HACK])
    332332
     333equate_if_defined([TCR_IN_GPR])
     334
    333335/* Well, so much for that. Maybe this will go away soon ? */
    334336equate_if_defined([WIN32_ES_HACK])
  • branches/working-0711/ccl/lisp-kernel/pmcl-kernel.c

    r12989 r12990  
    9090#include <mach/port.h>
    9191#include <sys/sysctl.h>
    92 
    93 Boolean running_under_rosetta = false;
    94 
    9592#include <dlfcn.h>
    9693#endif
     
    10141011
    10151012#ifdef WINDOWS
     1013wchar_t *
     1014determine_executable_name()
     1015{
     1016  DWORD nsize = 512, result;
     1017  wchar_t *buf = malloc(nsize*sizeof(wchar_t));
     1018
     1019  do {
     1020    result = GetModuleFileNameW(NULL, buf, nsize);
     1021    if (result == nsize) {
     1022      nsize *= 2;
     1023      buf = realloc(buf,nsize*sizeof(wchar_t));
     1024    } else {
     1025      return buf;
     1026    }
     1027  } while (1);
     1028}
     1029
     1030
    10161031wchar_t *
    10171032ensure_real_path(wchar_t *path)
     
    14571472    exit(1);
    14581473  }
    1459 #ifdef PPC
    1460 #ifdef DARWIN
    1461   {
    1462     char *hosttype = getenv("HOSTTYPE");
    1463     if (hosttype && !strncmp("intel", hosttype, 5)) {
    1464       running_under_rosetta = true;
    1465       use_mach_exception_handling = false;
    1466       reserved_area_size = 1U << 30;
    1467     }
    1468   }
    1469 #endif
    1470 #endif
    14711474#endif
    14721475}
     
    16901693  check_os_version(argv[0]);
    16911694#ifdef WINDOWS
    1692   real_executable_name = utf_16_argv[0];
     1695  real_executable_name = determine_executable_name();
    16931696#else
    16941697  real_executable_name = determine_executable_name(argv[0]);
     
    19511954xMakeDataExecutable(void *start, unsigned long nbytes)
    19521955{
     1956#ifndef X86
    19531957  extern void flush_cache_lines();
    19541958  natural ustart = (natural) start, base, end;
     
    19561960  base = (ustart) & ~(cache_block_size-1);
    19571961  end = (ustart + nbytes + cache_block_size - 1) & ~(cache_block_size-1);
    1958 #ifdef DARWIN
    1959   if (running_under_rosetta) {
    1960     /* We probably need to flush something's cache even if running
    1961        under Rosetta, but (a) this is agonizingly slow and (b) we're
    1962        dying before we get to the point where this would matter.
    1963     */
    1964     return;
    1965   }
    1966 #endif
    1967 #ifndef X86
    19681962  flush_cache_lines(base, (end-base)/cache_block_size, cache_block_size);
    19691963#endif
  • branches/working-0711/ccl/lisp-kernel/thread_manager.c

    r12799 r12990  
    20462046        }
    20472047      }
     2048#if 0
    20482049    } else {
    20492050      if (tcr->valence == TCR_STATE_EXCEPTION_RETURN) {
     
    20552056        tcr->valence = TCR_STATE_LISP;
    20562057      }
     2058#endif
    20572059    }
    20582060    tcr->suspend_context = pcontext;
  • branches/working-0711/ccl/lisp-kernel/x86-asmutils64.s

    r12198 r12990  
    171171_endfn
    172172
     173_exportfn(C(put_vector_registers))
     174_endfn                         
     175       
    173176        __ifdef([DARWIN])
    174177_exportfn(C(darwin_sigreturn))
     
    185188        __endif
    186189
    187 _exportfn(C(put_vector_registers))
    188 _endfn                         
    189190       
    190191       
  • branches/working-0711/ccl/lisp-kernel/x86-constants.s

    r12198 r12990  
    6969       
    7070        _struct(lisp_globals,lisp_globals_limit-(num_lisp_globals*node_size))
    71          _node(initial_tcr)             /* initial thread tcr   */
    72          _node(image_name)              /* --image-name argument   */
    73          _node(BADfpscr_save_high)      /* high word of FP reg used to save FPSCR   */
     71         _node(initial_tcr)             /* initial thread tcr */
     72         _node(image_name)              /* --image-name argument */
     73         _node(BADfpscr_save_high)      /* high word of FP reg used to save FPSCR */
    7474         _node(unwind_resume)           /* _Unwind_Resume */
    75          _node(batch_flag)              /* -b   */
     75         _node(batch_flag)              /* -b */
    7676         _node(host_platform)           /* for runtime platform-specific stuff   */
    7777         _node(argv)                    /* address of argv[0]   */
  • branches/working-0711/ccl/lisp-kernel/x86-constants64.s

    r11164 r12990  
    222222
    223223
    224 ifdef([WINDOWS],[
     224ifdef([TCR_IN_GPR],[
    225225/* We keep the TCR pointer in r11 */
    226226        define([rcontext_reg], r11)
  • branches/working-0711/ccl/lisp-kernel/x86-exceptions.c

    r12988 r12990  
    22592259#ifdef X8664
    22602260opcode load_allocptr_reg_from_tcr_save_allocptr_instruction[] =
    2261 #ifdef WINDOWS
     2261#ifdef TCR_IN_GPR
    22622262  {0x49,0x8b,0x9b,0xd8,0x00,0x00,0x00}
    22632263#else
     
    22662266;
    22672267opcode compare_allocptr_reg_to_tcr_save_allocbase_instruction[] =
    2268 #ifdef WINDOWS
     2268#ifdef TCR_IN_GPR
    22692269  {0x49,0x3b,0x9b,0xe0,0x00,0x00,0x00}
    22702270#else
     
    22782278  {0xcd,0xc5};
    22792279opcode clear_tcr_save_allocptr_tag_instruction[] =
    2280 #ifdef WINDOWS
     2280#ifdef TCR_IN_GPR
    22812281  {0x41,0x80,0xa3,0xd8,0x00,0x00,0x00,0xf0}
    22822282#else
  • branches/working-0711/ccl/lisp-kernel/x86-spentry64.s

    r12198 r12990  
    12341234        __(movq catch_frame._save1(%temp0),%save1)
    12351235        __(movq catch_frame._save2(%temp0),%save2)
    1236         __ifndef([WINDOWS])
     1236        __ifndef([TCR_IN_GPR])
    12371237        __(movq catch_frame._save3(%temp0),%save3)
    12381238        __endif
     
    12801280        __(movq catch_frame._save1(%temp0),%save1)
    12811281        __(movq catch_frame._save2(%temp0),%save2)
    1282         __ifndef([WINDOWS])
     1282        __ifndef([TCR_IN_GPR])
    12831283        __(movq catch_frame._save3(%temp0),%save3)
    12841284        __endif
     
    13371337        __(movq %save2,%rsp)
    13381338        __(movq catch_frame.rbp(%temp0),%rbp)
    1339         __ifndef([WINDOWS])
     1339        __ifndef([TCR_IN_GPR])
    13401340        __(movq catch_frame._save3(%temp0),%save3)
    13411341        __endif
     
    13591359        __(push catch_frame._save1(%temp0))
    13601360        __(push catch_frame._save2(%temp0))
    1361         __ifndef([WINDOWS])
     1361        __ifndef([TCR_IN_GPR])
    13621362        __(push catch_frame._save3(%temp0))
    13631363        __endif
     
    13911391        __(jns local_label(_nthrowv_tpushloop))
    13921392        __(pop %xfn)
    1393         __ifndef([WINDOWS])
     1393        __ifndef([TCR_IN_GPR])
    13941394        __(pop %save3)
    13951395        __endif
     
    14691469        __(movq catch_frame.rsp(%temp0),%rsp)
    14701470        __(movq catch_frame.rbp(%temp0),%rbp)
    1471         __ifndef([WINDOWS])
     1471        __ifndef([TCR_IN_GPR])
    14721472        __(movq catch_frame._save3(%temp0),%save3)
    14731473        __endif
     
    14931493        __(movq catch_frame._save1(%temp0),%save1)
    14941494        __(movq catch_frame._save2(%temp0),%save2)
    1495         __ifndef([WINDOWS])
     1495        __ifndef([TCR_IN_GPR])
    14961496        __(movq catch_frame._save3(%temp0),%save3)
    14971497        __endif
     
    40164016         __(movq %csave2,%imm0)
    40174017        __endif
    4018         __ifdef([WINDOWS])
     4018        __ifdef([TCR_IN_GPR])
    40194019        /* Preserve TCR pointer */
    40204020        __(movq %rcontext_reg, %csave0)
     
    40544054         __(movq %csave2,%rdx)
    40554055        __endif
    4056         __ifdef([WINDOWS])
     4056        __ifdef([TCR_IN_GPR])
    40574057        __(movq %csave0, %rcontext_reg)
    40584058        __endif
    40594059        __(movq %rsp,rcontext(tcr.foreign_sp))
    4060         __ifndef([WINDOWS])
     4060        __ifndef([TCR_IN_GPR])
    40614061        __(clr %save3)
    40624062        __endif
     
    42364236         __(movq %csave3,%imm1)
    42374237        __endif
    4238         __ifdef([WINDOWS])
     4238        __ifdef([TCR_IN_GPR])
    42394239        /* Preserve TCR pointer */
    42404240        __(movq %rcontext_reg, %csave1)
     
    42744274         __(movsd 24(%csave0),%xmm1)
    42754275        __endif
    4276         __ifdef([WINDOWS])
     4276        __ifdef([TCR_IN_GPR])
    42774277        __(movq %csave1, %rcontext_reg)
    42784278        __endif
    42794279        __(movq %rsp,rcontext(tcr.foreign_sp))       
    4280         __ifndef([WINDOWS])
     4280        __ifndef([TCR_IN_GPR])
    42814281        __(clr %save3)
    42824282        __endif
     
    44274427        __(movq (%rsp),%rbp)
    44284428        __(addq $2*node_size,%rsp)
     4429        __ifdef([TCR_IN_GPR])
     4430         __(movq %rcontext_reg,%csave0)
     4431        __endif
    44294432        __ifdef([WINDOWS])
    4430          __(movq %rcontext_reg,%csave0)
    44314433         __(pop %carg0)
    44324434         __(pop %carg1)
     
    44514453         __endif
    44524454        __endif
    4453         __ifdef([WINDOWS])
     4455        __ifdef([TCR_IN_GPR])
    44544456         __(movq %csave0,%rcontext_reg)
    44554457        __endif
    44564458        __(movq %rbp,%rsp)
    44574459        __(movq %rsp,rcontext(tcr.foreign_sp))
    4458         __ifndef([WINDOWS])
     4460        __ifndef([TCR_IN_GPR])
    44594461         __(clr %save3)
    44604462        __endif
     
    46104612        __ifdef([HAVE_TLS])
    46114613         /* TCR initialized for lisp ?   */
    4612          __ifndef([WINDOWS]) /* FIXME */
     4614         __ifndef([TCR_IN_GPR]) /* FIXME */
    46134615         __(movq %fs:current_tcr@TPOFF+tcr.linear,%rax)
    46144616         __(testq %rax,%rax)
     
    46244626        __ifdef([WINDOWS])
    46254627        __(add $0x20, %rsp)
     4628        __endif
     4629        __ifdef([TCR_IN_GPR])
    46264630        __(movq %rax, %rcontext_reg)
    46274631        __endif
     
    46374641        __(movq %csave0,%rax)
    46384642        __(movq %rsp,rcontext(tcr.foreign_sp))
    4639         __ifndef([WINDOWS])
     4643        __ifndef([TCR_IN_GPR])
    46404644        __(clr %save3)
    46414645        __endif
     
    46594663        __(movq 8(%rsp),%save1)
    46604664        __(movq 16(%rsp),%save2)
    4661         __ifndef([WINDOWS])
     4665        __ifndef([TCR_IN_GPR])
    46624666         __(movq 24(%rsp),%save3)
    46634667        __endif
  • branches/working-0711/ccl/lisp-kernel/x86-subprims64.s

    r10944 r12990  
    9797        __(push %csave5)
    9898        __(push %csave6)
     99        __endif
     100        __ifdef([TCR_IN_GPR])
    99101        __(movq %carg0,%rcontext_reg)
    100102        __endif
     
    115117        __(clr %save1)
    116118        __(clr %save2)
    117         __ifndef([WINDOWS]) /* no %save3, r11 is %rcontext_reg */
     119        __ifndef([TCR_IN_GPR]) /* no %save3, r11 is %rcontext_reg */
    118120        __(clr %save3)
    119121        __endif
Note: See TracChangeset for help on using the changeset viewer.