Copyright (c) Hyperion Entertainment and contributors.

Deprecated Functions

From AmigaOS Documentation Wiki
Jump to navigation Jump to search

Deprecated and Obsolete Functions

With the introduction of AmigaOS 4.1 Final Edition, developers may have noticed additional compiler warnings when rebuilding their projects against the new SDK. While as much of the API has been maintained as is possible, some functions, structures, attributes, and tags have changed over time requiring the attention of application developers. To make life easier, the following is a handy guide to items that have been deprecated or made obsolete with this most recent release. If your code uses any of these items, please refer to the Autodocs for the component noted to review. Some functions may need to be replaced and others may have changed behavior. It's always a good idea to review the Release Notes with each SDK release, of course, too.

This article is inclusive of code made obsolete or deprecated since V50 of the components listed below. Please feel free to edit the document based on your findings should the author have overlooked anything.

Components to Review

ASL Library

Deprecated functions

Obsolete Replacement
AllocFileRequest AllocAslRequest
FreeFileRequest FreeAslRequest
RequestFile AslRequest

Other

The following components in the ASL_FileRequest object are obsolete: ASLFR_HookFunc, ASLFO_HookFunc, and ASLFR_FilterFunc. For the latter, use ASLFR_FilterHook as a possible replacement.

BOOPSI Classes/Gadgets

Generally all BOOPSI gadget classes and superclasses had a #?_GetClass() function to return a pointer to the class itself. These functions are deprecated as of V52. Developers should use the gadget public class ID as a replacement. Some gadgets are listed separately in this article as they have other items now deprecated or obsolete; if a gadget is not listed herein, the above note regarding pointers should be the only item considered deprecated for it.

BSD Sockets Library

Deprecated Functions

Obsolete Replacement
Errno SocketBaseTags (with SBTC_ERRNO tag)
getdtablesize SocketBaseTags (with SBTC_DTABLESIZE tag)
gethostid n/a
SetErrnoPtr SocketBaseTags (with SBTC_ERRNOPTR tag)
SetSocketSignals SocketBaseTags

Other

  • The following IoctlSocket() calls are considered deprecated: SIOCSIFADDR, SIOCSIFDSTADDR, SIOCSIFBRDADDR, SIOCGIFADDR, SIOCGIFDSTADDR, SIOCGIFBRDADDR, SIOCSIFFLAGS, SIOCGIFFLAGS, SIOCSIFMETRIC, and SIOCGIFMETRIC.
  • Several functions used in conjunction with SocketBaseTagList() are now deprecated as well: SBTC_FDCALLBACK, SBTC_IOERRNOSTRPTR, SBTC_S2ERRNOSTRPTR, SBTC_S2WERRNOSTRPTR, SBTC_SIGIOMASK, and SBTC_SIGURGMASK.h

Chooser Gadget

  • The CHOOSER_GetClass function is no longer available. Use the "chooser.gadget" public class ID instead.
  • The chooser.gadget attribute CHOOSER_AutoFit is now unsupported

Console Device

Deprecated Functions

Obsolete Replacement (component) Replacement (function)
CD_ASKDEFAULTKEYMAP keymap.library AskKeyMapDefault
CD_ASKKEYMAP console.device CD_ASKKEYMAP_POINTERS
CD_SETDEFAULTKEYMAP keymap.library SetKeyMapDefault
CD_SETKEYMAP console.device CD_SETKEYMAP_POINTERS

DOS Library

The collective changes to the DOS subsystem are substantial and developers are urged to review the Obsolete DOS documentation as a starting point. Additionally with the introduction of the new Vector-Port API, use of DOS packets is (for the most part) no longer needed. Please carefully read through the documentation when starting a new project with the release of V54.

Deprecated Functions

Obsolete Replacement
CreateProc CreateNewProc
DeviceProc GetDeviceProc
ExAll ExamineDir
Examine ExamineObject
ExamineFH ExamineObject
ExNext ExamineDir
FreeDosEntry FreeDosObject
GetConsoleTask GetConsolePort
GetFileSysTask GetFileSysPort
MakeDosEntry AllocDosObject
ReadItem ReadLineItem
Seek SetFilePosition/GetFilePosition
SetConsoleTask SetConsolePort
SetFileSysTask SetFileSysPort
SetVBuf SetFileHandleAttr
SetOwner SetOwnerInfo

Other

  • Several functions had name changes in V53. Please review dos/obsolete.h in the SDK includes if you haven't already updated prior to the release of V54.
  • Before V53, CreateDir() returned an exclusive lock on the new directory if it succeeded, it is now required that this be a a shared lock. Exclusive directory locks have been deprecated. Only files may actually have exclusive locks.
  • The id_NumSoftErrors and id_UnitNumber fields of the GDI_InfoData structure returned from GetDiskInfo() and Info() are considered deprecated.
  • The following error codes returned from IoErr() are considered obsolete: ERROR_TASK_TABLE_FULL, ERROR_NO_DEFAULT_DIR, ERROR_OBJECT_LINKED, and ERROR_UNLOCK_ERROR.

Exec Library

Deprecated Functions

Obsolete Replacement
AllocEntry AllocTaskMemEntry
AllocMem AllocVecTagList or AllocVecTags
AllocVec AllocVecTagList or AllocVecTags
CachePreDMA StartDMA
CachePostDMA EndDMA
CreatePool AllocSysObject
MakeLibrary CreateLibrary
AllocTrap (for 68K only, no longer used)
FreeTrap (for 68K only, no longer used)
GetCC (for 68K only, no longer used)
SetSR (for 68K only, no longer used)

Memory Flags

Allocating memory with modern Exec is slightly different than before. In addition to using AllocVecTagList or AllocVecTags rather than AllocMem, several flags are no longer relevant. Please review the article on Obsolete Memory Allocation Techniques to note what to avoid. Developers should follow the documentation in the Memory Allocation section instead.

libamiga.a

Deprecated Functions

Obsolete Replacement (component) Replacement (function)
BeginIO exec.library BeginIO
CreateExtIO exec.library CreateIORequest
CreatePort exec.library CreatePort
CreateStdIO exec.library CreateIORequest
CreateTask exec.library CreateTask
DeleteExtIO exec.library DeleteIORequest
DeletePort exec.library DeletePort
DeleteStdIO exec.library DeleteIORequest
DeleteTask exec.library DeleteTask
NewList exec.library NewList

Listbrowser Gadget

  • The LISTBROWSER_GetClass function is no longer available. Use the "listbrowser.gadget" public class ID instead
  • The listbrowser.gadget attribute LISTBROWSER_FastRender is obsolete; there is no replacement.
  • The SetLBColumnInfoAttrsA function no longer accepts flags via LBCIA_Flags. One should use the equivalent tags instead.

Math IEEE libraries (68K)

As of V45 of mathieeedoubbas.library, mathieeedoubtrans.library, mathieeesingbas.library, and mathieeesingtrans.library, the mathieee.resources are no longer supported. It was felt that this solution was never very popular, neither very fast compared to a co-processor interface, and highly obsolete. This is doubly so in the PowerPC era of next-generation AmigaOne computers. They are included in the operating system merely for compatibility purposes and should not be used for new applications.

Picasso96 API Library

Starting with graphics.library V54, the vast majority of Picasso96 is now redundant. The graphics.library has been expanded and extended to seamlessly handle the traditional native (ECS, AGA) chip sets as well as modern graphics cards (RTG). Please carefully review the autodoc and consider migrating to the newer graphics.library-based API.

Deprecated Functions

Obsolete Replacement (component) Replacement (function)
p96AllocBitMap graphics.library AllocBitMapTags
p96FreeBitMap graphics.library FreeBitMap
p96LockBitMap graphics.library LockBitMapTags
p96LockBitMapToBoard graphics.library LockBitMapToBoardTags
p96ReadPixel graphics.library ReadPixelColor
p96ReadPixelArray graphics.library ReadPixelArray
p96RectFill graphics.library RectFillColor
p96UnlockBitMap graphics.library UnlockBitMap
p96UnlockBitMapFromBoard graphics.library UnlockBitMapFromBoard
p96WritePixel graphics.library WritePixelColor
p96WritePixelArray graphics.library WritePixelArray

Space Gadget

  • The SPACE_GetClass function is no longer available. Use the "space.gadget" public class ID instead.
  • The space.gadget SPACE_AreaBox tag is deprecated because it is unsafe to use in a multi-tasking environment. Use SPACE_RenderBox instead.

Texteditor Gadget

  • The TEXTEDITOR_GetClass function is no longer available. Use the "texteditor.gadget" public class ID instead.
  • The texteditor.gadget attributes GA_TEXTEDITOR_Prop_DeltaFactor and GA_TEXTEDITOR_HProp_DeltaFactor are now obsolete.

Warp3D Library

Deprecated functions

Obsolete Replacement
W3D_GetDestFmt W3D_Query

Window Class

  • The WINDOW_HintInfo attribute for gadget HelpHints is now considered obsolete and only included for compatibility purposes. Developers should supply all of the hints via the GA_HintInfo attribute of each gadget, and set the WINDOW_GadgetHelp attribute for future projects.
  • The WINDOW_Layout tag has 2 aliased definitions which are now obsolete but still supported in the include files.