Samba 3.0.22 Porting by Vidya Sagar

9 The maximum size of any single socket I/O request on MPE/iX is 30,000 bytes. Many applications will natively
9 ed (<1024) ports. Also, bind() binds only to
9 ect to datagram sockets.
ted using sfnctl() instead of using fcntl().
ill result in a system
9 llowing socket options:
Refer tes
attempt do to I/O in chunks of 65,536 bytes (or larger). These I/O calls will fail on MPE, and you will need to
modify the application to do socket I/O in smaller chunks
MPE/iX bind() should be invoked in privileged mode to bind privileg
wildcard interfaces.
MPE/iX cannot conn
9 MPE/iX socket descriptors MUST be manipula
9 Duplicating socket descriptors via dup(), dup2(), fcntl(F_DUPFD), or sfcntl(F_DUPFD) w
abort the next time you call fork().
MPE/iX setsockopt() does not support fo
SO_KEEPALIVE
SO_REUSEADDR
SO_SNDBUF
TCP_NODELAY
Mark Bixby’s porting no [3] for more on socket limitations.
MPE/iX processes cannot become a deamon: Samba become_daemon() does not easily apply to MPE, there is
,manager/sagar.sys;pri=CS
GTI not supported on MPE/iX
no setsid() routine available and the process management concepts are quite different in the MPE area. One might
use DETACH process but using a server job is easier. You can achieve the same just by making the process
visible in MPE namespace and run that process as job. The job JSMB inside samba package is used fro that
purpose and looks like:
:print JSMB
!job jsmbstrt
! xeq smbd.smb3022.samba "-D -p 139"
!eoj
POSIX : The standard POSIX.1 porting environment on HP-UX platforms
how
;
orter
It is recommended to read the function and miscellaneous link
supported the POSIX GTI or General Terminal Interface libraries. These library routines allow control for
terminal I/O is executed in a POSIX application beyond normal read/write activities. An example of a difference
can be found with the read function. With a standard MPE/iX application, a read request for data will block the
application and wait until the read data is received. In a POSIX application, there is no concept of a blocked read
as data is entered by the user it is forwarded to the system for processing. This is just one example of a major
difference between MPE/iX standard terminal I/O and POSIX GTI I/O. When porting a POSIX application, if
terminal I/O is a component of that applications operation, the porter will need to consider the method of
structuring the terminal I/O activities. One method is to encapsulate all terminal I/O operations into a single, p
defined library routine that can be tailored to the needs of the application.
from Mark Bixby’s porting notes [3], to learn more about
missing functions and their workaround. This page also contains the well known bugs which should be taken care to wo
your port properly.
So with this backgro
rk
und on MPE, POSIX, GNU tools, MPE/iX header files and libraries, and a few MPE/iX major
Build Machine Configuration
ild machine must have all the necessary packages installed to build an
ese
limitations, one should have a better understanding of the foundations for Porting “UNIX” applications to MPE/iX. Now
we’ll look at setting up an actual MPE/iX system to start our Samba port.
2
This is the first step of porting activity. Your bu
application and will likely require modifications to MPE Directories as well as some POSIX environmental changes. Th
steps are covered briefly below and in more detail in the following sections.
8