VxWorks
Application Programmer's Guide, 6.9
xviii
Watchdogs .......................................................................................................... 328
Drivers ................................................................................................................ 329
A.2.6 Redirecting I/O ................................................................................................. 329
A.2.7 Process and Task API Differences .................................................................. 330
Task Naming ...................................................................................................... 330
Differences in Scope Between Kernel and User Modes ............................... 331
Private and Public Objects ............................................................................... 331
A.2.8 Semaphore Differences ..................................................................................... 331
A.2.9 POSIX Signal Differences ................................................................................. 332
Signal Generation .............................................................................................. 332
Signal Delivery .................................................................................................. 332
Scope Of Signal Handlers ................................................................................ 332
Default Handling Of Signals ........................................................................... 333
Default Signal Mask for New Tasks ............................................................... 333
Signals Sent to Blocked Tasks .......................................................................... 333
Signal API Behavior .......................................................................................... 333
A.2.10 Networking Issues ........................................................................................... 334
Socket APIs ......................................................................................................... 334
routeAdd( ) ......................................................................................................... 334
A.2.11 Header File Differences .................................................................................... 334
A.2.12 Object IDs as Pointers to Memory .................................................................. 335
A.3 Differences in Kernel and RTP APIs .......................................................................... 335
A.3.1 APIs Not Present in User Mode ...................................................................... 335
A.3.2 APIs Added for User Mode Only ................................................................... 336
A.3.3 APIs that Work Differently in Processes ....................................................... 336
A.3.4 Kernel Calls Require Kernel Facilities ............................................................ 336
A.3.5 Other API Differences ...................................................................................... 337
B Porting C Code from 32-Bit to 64-Bit ........................................................ 339
B.1 Introduction ...................................................................................................................... 339
B.2 About the VxWorks 32-Bit and 64-Bit Data Models ................................................. 339
B.3 Using the Compiler to Identify Porting Issues ......................................................... 341
B.4 Making C Code 32-bit/64-Bit Portable ........................................................................ 342
B.4.1 Check int and long Declarations ..................................................................... 343
B.4.2 Check All Assignments .................................................................................... 343
B.4.3 Check for Data Type Promotion ..................................................................... 343
B.4.4 Check Use of Pointers ....................................................................................... 343
B.4.5 Check use of sizeof( ) ........................................................................................ 344
B.4.6 Check Use of Type Casting .............................................................................. 344