Ignore:
Timestamp:
Feb 22, 2011, 2:25:44 AM (14 years ago)
Author:
chris
Message:
  • Further fixes to automatic ATAPI sense handling, now supporting sense buffers larger than 64 bytes if requested by initiator (cdrecord wanted 96 bytes)
  • Separate, and internally handled, spinlock for libc malloc/free calls to reduce chances of memory corruption if somebody forgets to get the driver-level spinlock before calling malloc/free. There was no real problem with that, just some awkward code fragments which look much better now.
  • Link power management implemented
  • More generic support for adapter/port options so all of them can now have a global, adapter or port scope
  • Generic support for inverting driver options (i.e. turn them off with '!')
  • Thorough PCI scan is now the default; the reason it wasn't so far was a delay in Virtualbox but that was never a problem on real hardware
  • SCSI emulation for ATAPI devices; this can be enabled on global, adapter or port scope
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/os2ahci/os2ahci.h

    r76 r77  
    115115/* ctype macros */
    116116#define isupper(ch)           ((ch) >= 'A' && (ch) <= 'Z')
    117 #define tolower(ch)           (isupper(ch) ? (ch) - ('a' - 'A') : (ch))
     117#define tolower(ch)           (isupper(ch) ? (ch) + ('a' - 'A') : (ch))
    118118
    119119/* stddef macros */
     
    192192#define add_workspace(iorb)     ((ADD_WORKSPACE _far *) &(iorb)->ADDWorkSpace)
    193193
    194 /* free resources in ADD workspace (timer, buffer, ...) */
    195 #define aws_free(aws)           if ((aws)->timer != 0) {               \
    196                                   ADD_CancelTimer((aws)->timer);       \
    197                                   (aws)->timer = 0;                    \
    198                                 }                                      \
    199                                 if ((aws)->buf != NULL) {              \
    200                                   free((aws)->buf);                    \
    201                                   (aws)->buf = NULL;                   \
    202                                 }
    203 
    204 /* complete IORB */
    205 #define complete_iorb(iorb)   (iorb)->Status |= IORB_DONE;                    \
    206                               dprintf("IORB %Fp complete "                    \
    207                                       "(status = 0x%04x, error = 0x%04x)\n",  \
    208                                       (iorb), (iorb)->Status,                 \
    209                                       (iorb)->ErrorCode);                     \
    210                               if ((iorb)->RequestControl & IORB_ASYNC_POST) { \
    211                                 (iorb)->NotifyAddress(iorb);                  \
    212                               }
    213194
    214195
     
    264245#define ANSI_CLR_WHITE  "\x1b[37m"
    265246#define ANSI_RESET      "\x1b[0m"
    266 
    267247
    268248/* ------------------------ typedefs and structures ------------------------ */
     
    397377extern void    iorb_seterr            (IORBH _far *iorb, USHORT error_code);
    398378extern void    iorb_done              (IORBH _far *iorb);
     379extern void    iorb_complete          (IORBH _far *iorb);
    399380extern void    iorb_requeue           (IORBH _far *iorb);
     381extern void    aws_free               (ADD_WORKSPACE _far *aws);
    400382extern void    lock_adapter           (AD_INFO *ai);
    401383extern void    unlock_adapter         (AD_INFO *ai);
     
    443425
    444426/* libc.c */
    445 extern void        init_com1     (void);
     427extern void        init_libc     (void);
     428extern void        init_com      (void);
    446429extern int         vsprintf      (char _far *buf, const char *fmt, va_list va);
    447430extern int         sprintf       (char _far *buf, const char *fmt, ...);
     
    523506
    524507/* apapter/port-specific options saved when parsing the command line */
     508extern u8            emulate_scsi[MAX_AD][AHCI_MAX_PORTS];
     509extern u8            disable_ncq[MAX_AD][AHCI_MAX_PORTS];
    525510extern u8            link_speed[MAX_AD][AHCI_MAX_PORTS];
    526 extern u8            disable_ncq[MAX_AD][AHCI_MAX_PORTS];
    527 
     511extern u8            link_power[MAX_AD][AHCI_MAX_PORTS];
     512
Note: See TracChangeset for help on using the changeset viewer.