Hi Doug, Thanks for the update. I was out of the office yesterday, so I didn't see this until this morning. I'll take a look at your changes as soon as possible. This will probably not be until the end of the week, due to interference from my day job. :-)
Regards, Carl > -----Original Message----- > From: Douglas E. Engert [mailto:[EMAIL PROTECTED]] > Sent: Friday, January 24, 2003 2:37 PM > To: Carl E. Davidson; Srikanth Vishwanathan; > [EMAIL PROTECTED]; Derrick J Brashear > Subject: Progress with OpenAFS-1.2.8 on HP-UX 11.22 > > > More progress on OpenAFS on HP UX 11.22 on Itanium. I now > have the readdir > somewhat working in 32 and 64 bit mode, thanks to a tip from > Srikanth Vishwanathan. > > But there are still problems. > > I am attaching a diff file for the 1.2.8 source. This file > can also be > found at: ftp://achilles.ctd.anl.gov/pub/DEE/cdiff.hpux1122.20030124 > and the source with these changes at: > ftp://achilles.ctd.anl.gov/pub/DEE/oa128.hp1122.tar > > The main changes include: > > o Changes to Makefiles and param files for hp_ux1122 as > defined by AFS_HPUX1122_ENV > and compiler flags and options. Only the STATIC.64 kernel > is built. > All the non-kernel code is 32 bit. > > o The code no longer lock on the "VM Empire", as it is not needed > > o Convert the AFS_GLOCK to a beta_semaphore, as alpha_semaphores are > not supported. > > o Some spinlock code was replaced, as the SPL6 and SPLX are > not supported. > > o Changes to sleep and wakeup to release and acquire the AFS_GLOCK > over a sleep. This also uses the HP get_sleep_lock I > think it is correct. > > o The code refers to mpproc_info for updating stats, I > #ifdefed these > out, so I could get it to compile, This needs to be fixed. > > o the VFS afs_readdir, afs_readdir2 and afs_readdir3 need a > lot of work! > It looks like even in 32 bit mode, the dirent entries need to be > aligned on 8 byte boundaries. (See the use of DIRPAD to > define 3 or 7) > The dirent entries used in the kernel, and the the 32 and > 64 bit mods for > the user are all different sizes. > The code in these three routines is so convoluted I am > surprised it > ever worked! And the comments in the code about the HP > with NFS, having stack > problems, makes it even worse! > (I am not comfortable with the change I have made, but at > least now > "ls" and "ls -l" work. but "pwd" does not! > > o The afsHash was called for HP, but not sure why. I have it > commented > out in one place. Needs to be looked at. > > o I can get a PAG. It appears that if some routines are not > defined the > compiler can generate the wrong code. crdup() was not > being defined, > because HP added a #ifdef for FINE_GRAINED_PROTO_FILES to > the cred.h > There may be other places where this is a problem. > > o Some HP hearers indicate kmem_alloc is being replaced by > kalloc, so I changes > these too. > > o The mbuf.h and code to use it was still being included > even though the > code was not being called. > > o LWP depended on accessing the stack pointer. It is now > using the same code > as the Linux IA64 for the hardware context. > > o df does not show /afs as being mounted. Although during > one test boot it did. > I had been playing around with /etc/mnttab. That might > have done it. > > o There are still lots of compiler warning messages. > > Some additional comments. > > o I am testing on a uniprocessor, so don't know if the > locking is actually > working. > > o I have read some data from AFS, and looked at publicly > readable data, > I have not tried to write to AFS. > > o I have gotten a ticket, but have not attempted to use it at all. > > o fs and vos appear to work, but I have not tried very many > functions. > > o You will also need an updated config.guess and config.sub > that know as about > ia64-hp-hpux11.22 I got it from somewhere, (Its Friday > afternoon, my brain is not > working.) > > > Carl, Can you look over these changes, and see if the locking > looks OK? > If yoiu can seperate out any 11.i vs 11.22 features that > would be good too. > > ANy other comments or suggestions are welcome too! > > > Thanks. > > > *** ./,Makefile.in Tue Sep 10 17:33:24 2002 > --- ./Makefile.in Tue Dec 17 14:34:14 2002 > *************** > *** 243,249 **** > > tviced: project viced vlserver libafsrpc libafsauthent > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux110) \ > ${COMPILE_PART1} tviced ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT viced for ${SYS_NAME} ;; \ > --- 243,249 ---- > > tviced: project viced vlserver libafsrpc libafsauthent > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun*_5*|rs_aix*|*linux*|hp_ux11*) \ > ${COMPILE_PART1} tviced ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT viced for ${SYS_NAME} ;; \ > *************** > *** 264,270 **** > > gtx: project null auth # kauth rxkad ? > case ${SYS_NAME} in \ > ! rs_aix* | sun4x_5? | sgi_6? | *linux* | ppc_darwin* | > *fbsd*) \ > $(RM) -f ${TOP_LIBDIR}/libtermlib.a; \ > ln -s libnull.a ${TOP_LIBDIR}/libtermlib.a; \ > ${COMPILE_PART1} gtx ${COMPILE_PART2};; \ > --- 264,270 ---- > > gtx: project null auth # kauth rxkad ? > case ${SYS_NAME} in \ > ! rs_aix* | sun4x_5? | sgi_6? | *linux* | ppc_darwin* | > *fbsd* | hp_ux1122) \ > $(RM) -f ${TOP_LIBDIR}/libtermlib.a; \ > ln -s libnull.a ${TOP_LIBDIR}/libtermlib.a; \ > ${COMPILE_PART1} gtx ${COMPILE_PART2};; \ > *************** > *** 414,420 **** > > tbutc: project bubasics butm budb bucoord cmd butc > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux110) \ > ${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT butc for ${SYS_NAME} ;; \ > --- 414,420 ---- > > tbutc: project bubasics butm budb bucoord cmd butc > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix4*|*linux*|hp_ux11*) \ > ${COMPILE_PART1} tbutc ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT butc for ${SYS_NAME} ;; \ > *************** > *** 437,443 **** > # pthread based user space RX library > libafsrpc: rx rxkad des > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110|*fbsd*) \ > ${COMPILE_PART1} libafsrpc ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT libafsrpc for ${SYS_NAME} ;; \ > --- 437,443 ---- > # pthread based user space RX library > libafsrpc: rx rxkad des > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux11*|*fbsd*) \ > ${COMPILE_PART1} libafsrpc ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT libafsrpc for ${SYS_NAME} ;; \ > *************** > *** 445,451 **** > > libafsauthent: ubik auth kauth libafsrpc > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110|*fbsd*) \ > ${COMPILE_PART1} libafsauthent ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT libafsrpc for ${SYS_NAME} ;; \ > --- 445,451 ---- > > libafsauthent: ubik auth kauth libafsrpc > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux11*|*fbsd*) \ > ${COMPILE_PART1} libafsauthent ${COMPILE_PART2} ;; \ > *) \ > echo Not building MT libafsrpc for ${SYS_NAME} ;; \ > *************** > *** 453,459 **** > > shlibafsrpc: rx rxkad des > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110) \ > ${COMPILE_PART1} shlibafsrpc ${COMPILE_PART2} ;; \ > *) \ > echo Not building shared libafsrpc for ${SYS_NAME} ;; \ > --- 453,459 ---- > > shlibafsrpc: rx rxkad des > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*) \ > ${COMPILE_PART1} shlibafsrpc ${COMPILE_PART2} ;; \ > *) \ > echo Not building shared libafsrpc for ${SYS_NAME} ;; \ > *************** > *** 461,467 **** > > shlibafsauthent: ubik auth kauth shlibafsrpc > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux110) \ > ${COMPILE_PART1} shlibafsauthent ${COMPILE_PART2} ;; \ > *) \ > echo Not building shared libafsrpc for ${SYS_NAME} ;; \ > --- 461,467 ---- > > shlibafsauthent: ubik auth kauth shlibafsrpc > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*) \ > ${COMPILE_PART1} shlibafsauthent ${COMPILE_PART2} ;; \ > *) \ > echo Not building shared libafsrpc for ${SYS_NAME} ;; \ > *************** > *** 481,487 **** > > libadmin: libafsauthent bozo > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux110) \ > $(MAKE) libadmin_real ;; \ > *) \ > echo Not building MT libadmin for ${SYS_NAME} ;; \ > --- 481,487 ---- > > libadmin: libafsauthent bozo > case ${SYS_NAME} in \ > ! alpha_dux*|sgi_*|sun4x_*|rs_aix*|*linux*|hp_ux11*) \ > $(MAKE) libadmin_real ;; \ > *) \ > echo Not building MT libadmin for ${SYS_NAME} ;; \ > *** ./src/afs/,sysincludes.h Thu Nov 14 14:20:39 2002 > --- ./src/afs/sysincludes.h Tue Dec 17 13:33:30 2002 > *************** > *** 219,224 **** > --- 219,227 ---- > struct vfspage; /* for vnode.h compiler > warnings */ > # include "../h/swap.h" /* for struct swpdbd, for > vnode.h compiler warnings */ > # include "../h/dbd.h" /* for union idbd, for vnode.h > compiler warnings */ > + #ifdef AFS_HPUX1122_ENV > + # include "h/resource.h" > + #endif > # endif /* AFS_HPUX_ENV */ > #if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD40_ENV) > # include <sys/uio.h> > *************** > *** 270,276 **** > --- 273,281 ---- > #ifdef AFS_SUN5_ENV > # include "../h/time.h" > #else > + #if !defined(AFS_HPUX_ENV) > # include "../h/mbuf.h" > + #endif > #endif /* AFS_SUN5_ENV */ > > #include "../rpc/types.h" > *** ./src/afs/HPUX/,osi_vnodeops.c Thu Nov 14 14:08:34 2002 > --- ./src/afs/HPUX/osi_vnodeops.c Fri Jan 24 09:59:34 2003 > *************** > *** 49,55 **** > --- 49,66 ---- > > #define vtoblksz(vp) ((vp)->v_vfsp->vfs_bsize) > > + #if defined(AFS_HPUX1122_ENV) > + /* We no longer need to lock on the VM Empire, > + * or at least that is what is claimed. > + * so we will noopt the vmemp_ routines > + * This needs to be looked at closer. DEE > + */ > + #define vmemp_lockx() > + #define vmemp_returnx(a) > + #define vmemp_unlockx() > + #endif > > + #if !defined(AFS_HPUX1122_ENV) > /* > * Copy an mbuf to the contiguous area pointed to by cp. > * Skip <off> bytes and copy <len> bytes. > *************** > *** 92,97 **** > --- 103,109 ---- > > return (len); > } > + #endif > > /* > * Note that the standard Sun vnode interface doesn't > haven't an vop_lockf(), so this > code is > *************** > *** 160,166 **** > --- 172,182 ---- > } > > > + #if defined(AFS_HPUX1122_ENV) > + #include "machine/vm/vmparam.h" > + #else > #include "../machine/vmparam.h" /* For KERNELSPACE */ > + #endif > #include "../h/debug.h" > #include "../h/types.h" > #include "../h/param.h" > *************** > *** 1262,1268 **** > --- 1278,1287 ---- > if (change_to_fstore) > afspgin_update_dbd(vm_info, bsize); > > + #if !defined(AFS_HPUX1122_ENV) > + /*DEE needs to be fixed */ > mpproc_info[getprocindex()].cnt.v_exfod += count; > + #endif > vmemp_unlockx(); /* free up VM empire */ > *ret_startindex = startindex; > > *************** > *** 1628,1633 **** > --- 1647,1654 ---- > /* > * Update statistics > */ > + #if !defined(AFS_HPUX1122_ENV) > + /*DEE many changes on 11.22 needs to be looked at */ > if (steal) { > if (flags & PF_DEACT) { > mpproc_info[getprocindex()].cnt.v_pswpout += npages; > *************** > *** 1638,1643 **** > --- 1659,1665 ---- > mpproc_info[getprocindex()].cnt.v_pgpgout += npages; > } > } > + #endif > > /* > * If time and patience have delivered enough > *************** > *** 1984,1992 **** > --- 2006,2024 ---- > return(ENOTTY); > } > > + #if defined(AFS_HPUX1122_ENV) > + /* looks like even if appl is 32 bit, we need to round to 8 bytes */ > + /* DEE This had no effect, it must not be being used */ > + > + #define roundtoint(x) (((x) + (sizeof(long) - 1)) & > ~(sizeof(long) - 1)) > + #define reclen(dp) roundtoint(((dp)->d_namlen + 1 + > (sizeof(u_long)) +\ > + sizeof(u_int) + 2 * > sizeof(u_short))) > + #else > + > #define roundtoint(x) (((x) + (sizeof(int) - 1)) & > ~(sizeof(int) - 1)) > #define reclen(dp) roundtoint(((dp)->d_namlen + 1 + > (sizeof(u_long)) +\ > 2 * sizeof(u_short))) > + #endif > > int > afs_readdir(vp, uiop, cred) > *** ./src/afs/HPUX/,osi_machdep.h Tue Nov 26 17:40:38 2002 > --- ./src/afs/HPUX/osi_machdep.h Tue Jan 21 16:54:02 2003 > *************** > *** 49,58 **** > --- 49,63 ---- > * HP uses global mutex to protect afs land > */ > > + #if !defined(AFS_HPUX1122_ENV) > extern sema_t afs_global_sema; > + #else > + extern b_sema_t afs_global_sema; > + #endif > > extern void osi_InitGlock(void); > > + #if !defined(AFS_HPUX1122_ENV) > extern void afsHash(int nbuckets); > extern sv_sema_t *afsHashInsertFind(tid_t key); > extern sv_sema_t *afsHashFind(tid_t key); > *************** > *** 61,71 **** > #define AFS_GLOCK_PID kt_tid(u.u_kthreadp) > #define AFS_SAVE_SEMA afsHashInsertFind(AFS_GLOCK_PID) > #define AFS_FIND_SEMA afsHashFind(AFS_GLOCK_PID) > #define AFS_GLOCK() MP_PXSEMA(&afs_global_sema, AFS_SAVE_SEMA) > #define AFS_GUNLOCK() (AFS_ASSERT_GLOCK(), > MP_VXSEMA(&afs_global_sema,AFS_FIND_SEMA), > (!uniprocessor ? (afsHashRelease(AFS_GLOCK_PID),0) : 0)) > #define ISAFS_GLOCK() (!uniprocessor ? > owns_sema(&afs_global_sema):1) > > ! #define AFS_RXGLOCK() > #define AFS_RXGUNLOCK() > #define ISAFS_RXGLOCK() 1 > > --- 66,84 ---- > #define AFS_GLOCK_PID kt_tid(u.u_kthreadp) > #define AFS_SAVE_SEMA afsHashInsertFind(AFS_GLOCK_PID) > #define AFS_FIND_SEMA afsHashFind(AFS_GLOCK_PID) > + > #define AFS_GLOCK() MP_PXSEMA(&afs_global_sema, AFS_SAVE_SEMA) > #define AFS_GUNLOCK() (AFS_ASSERT_GLOCK(), > MP_VXSEMA(&afs_global_sema,AFS_FIND_SEMA), > (!uniprocessor ? (afsHashRelease(AFS_GLOCK_PID),0) : 0)) > #define ISAFS_GLOCK() (!uniprocessor ? > owns_sema(&afs_global_sema):1) > > ! #else > ! #define AFS_GLOCK() b_psema(&afs_global_sema) > ! #define AFS_GUNLOCK() b_vsema(&afs_global_sema) > ! #define ISAFS_GLOCK() b_owns_sema(&afs_global_sema) > ! > ! #endif > ! > ! #define AFS_RXGLOCK() > #define AFS_RXGUNLOCK() > #define ISAFS_RXGLOCK() 1 > > *************** > *** 75,80 **** > --- 88,94 ---- > #define USERPRI NET_SPLX(splvar) > #endif /* KERNEL */ > > + #if !defined(AFS_HPUX1122_ENV) > /* > * On HP, the global lock is an alpha semaphore, hence it > is automatically > * released and reacquired aroubd a sleep() and wakeup(). > *************** > *** 82,94 **** > --- 96,130 ---- > > #define afs_osi_Sleep(x) sleep((caddr_t) x,PZERO-2) > #define afs_osi_Wakeup(x) wakeup((caddr_t) x) > + #else > + /* > + *DEE On 11.22 global lock is a beta semaphore, hence we nned to > + * release and reacquire around sllep and wakeup. We also need to > + * use the get_sleep_lock. > + * afs_osi_Sleep and afs_osi_Wakeup are defined > + */ > + void afs_osi_Sleep(char *event); > + void afs_osi_Wakeup(char *event); > + #endif > + > #define osi_NullHandle(x) ((x)->proc == (caddr_t) 0) > > + #if !defined(AFS_HPUX1122_ENV) > extern caddr_t kmem_alloc(); > + #else > + #undef kmem_alloc > + #undef kmem_free > + #define kmem_alloc(a) kmalloc(a, M_IHV, M_WAITOK) > + #define kmem_free(a,b) kfree(a, M_IHV) > + #endif > #include <sys/kthread_iface.h> /* for kt_cred() */ > > /* Expected to be available as a patch from HP */ > /* See section D of the top level README for details */ > + #if defined(AFS_HPUX1122_ENV) > + #include <sys/vfs_vm.h> > + #else > #include <vfs_vm.h> > + #endif > > #endif /* _OSI_MACHDEP_H_ */ > *** ./src/afs/HPUX/,osi_vfsops.c Tue Apr 23 20:41:30 2002 > --- ./src/afs/HPUX/osi_vfsops.c Wed Jan 8 14:52:58 2003 > *************** > *** 182,187 **** > --- 182,188 ---- > static int afs_Starting = 0; > > #pragma align 64 > + #if !defined(AFS_HPUX1122_ENV) > sema_t afs_global_sema = { > NULL, 0, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, /* > sa_type */ > 0, 0, 0, 0, 0, 0, 0, NULL, /* sa_link */ > *************** > *** 190,195 **** > --- 191,199 ---- > , 0, 0, 0, NULL > #endif > }; > + #else > + b_sema_t afs_global_sema = {0}; > + #endif > > void > osi_InitGlock() > *************** > *** 200,207 **** > if ( !afs_Starting ) { > afs_Starting = 1; > SPINUNLOCK_USAV(sched_lock, context); > ! initsema(&afs_global_sema, 1, FILESYS_SEMA_PRI, > FILESYS_SEMA_ORDER); > ! afsHash(64); /* 64 buckets */ > } else { > SPINUNLOCK_USAV(sched_lock, context); > } > --- 204,211 ---- > if ( !afs_Starting ) { > afs_Starting = 1; > SPINUNLOCK_USAV(sched_lock, context); > ! b_initsema(&afs_global_sema, 1, NFS_LOCK_ORDER2, "AFS GLOCK"); > ! /* afsHash(64); */ /* 64 buckets */ > } else { > SPINUNLOCK_USAV(sched_lock, context); > } > *** ./src/afs/HPUX/,osi_groups.c Thu Jan 9 10:24:17 2003 > --- ./src/afs/HPUX/osi_groups.c Mon Jan 20 15:09:16 2003 > *************** > *** 133,141 **** > --- 133,146 ---- > int *gp; > struct ucred *newcr; > ulong_t s; > + #if defined(AFS_HPUX1122_ENV) > + register ulong_t context; > + #endif > > AFS_STATCNT(afs_setgroups); > > + #if 1 > + /*DEE SKIP THIS FOR NOW! */ > if (!change_parent) > { > newcr = (struct ucred *)crdup(*cred); > *************** > *** 147,156 **** > --- 152,168 ---- > /* somebody else might have a pointer to this structure. > ** make sure we do not have a race condition */ > newcr = *cred; > + #if defined(AFS_HPUX1122_ENV) > + /*DEE all of the uniprocessor spinlocks are not > defined. */ > + /* I assume the UP and MP are now handled together */ > + MP_SPINLOCK_USAV(cred_lock, context); > + #else > s = UP_SPL6(); > SPINLOCK(cred_lock); > + #endif > } > > + > /* copy the group info */ > gp = newcr->cr_groups; > while (ngroups--) > *************** > *** 157,163 **** > *gp++ = *gidset++; > for ( ; gp < &(newcr)->cr_groups[NGROUPS]; gp++) > *gp = ((gid_t) -1); > ! > if ( !change_parent) > { > /* replace the new cred structure in the proc area */ > --- 169,175 ---- > *gp++ = *gidset++; > for ( ; gp < &(newcr)->cr_groups[NGROUPS]; gp++) > *gp = ((gid_t) -1); > ! > if ( !change_parent) > { > /* replace the new cred structure in the proc area */ > *************** > *** 168,175 **** > --- 180,193 ---- > } > else > { > + #if defined(AFS_HPUX1122_ENV) > + MP_SPINUNLOCK_USAV(cred_lock, context); > + #else > (void) UP_SPLX(s); > SPINUNLOCK(cred_lock); > + #endif > } > + > + #endif > return (setuerror(0), 0); > } > *** ./src/afs/HPUX/,osi_sleep.c Thu Jul 12 14:58:20 2001 > --- ./src/afs/HPUX/osi_sleep.c Tue Jan 21 10:10:11 2003 > *************** > *** 16,24 **** > #include "../afs/afsincludes.h" /* Afs-based standard headers */ > #include "../afs/afs_stats.h" /* afs statistics */ > > > > - > static char waitV; > > /* call procedure aproc with arock as an argument, in ams > milliseconds */ > --- 16,27 ---- > #include "../afs/afsincludes.h" /* Afs-based standard headers */ > #include "../afs/afs_stats.h" /* afs statistics */ > > + #if defined(AFS_HPUX1122_ENV) > + void afs_osi_Wakeup(char *event); > + void afs_osi_Sleep(char *event); > + #endif > > > static char waitV; > > /* call procedure aproc with arock as an argument, in ams > milliseconds */ > *************** > *** 106,108 **** > --- 109,196 ---- > } while (osi_Time() < endTime); > return code; > } > + > + #if defined(AFS_HPUX1122_ENV) > + > + /* on HP 11.22 we are using beta semiphore for AFS_GLOCK */ > + > + typedef struct afs_event { > + struct afs_event *next; /* next in hash chain */ > + char *event; /* lwp event: an address */ > + int refcount; /* Is it in use? */ > + int seq; /* Sequence number: this is > incremented > + by wakeup calls; wait > will not return until > + it changes */ > + } afs_event_t; > + > + #define HASHSIZE 128 > + afs_event_t *afs_evhasht[HASHSIZE];/* Hash table for events */ > + #define afs_evhash(event) (afs_uint32) > ((((long)event)>>2) & (HASHSIZE-1)); > + int afs_evhashcnt = 0; > + > + /* Get and initialize event structure corresponding to lwp > event (i.e. address) > + * */ > + static afs_event_t *afs_getevent(char *event) > + { > + afs_event_t *evp, *newp = 0; > + int hashcode; > + > + AFS_ASSERT_GLOCK(); > + hashcode = afs_evhash(event); > + evp = afs_evhasht[hashcode]; > + while (evp) { > + if (evp->event == event) { > + evp->refcount++; > + return evp; > + } > + if (evp->refcount == 0) > + newp = evp; > + evp = evp->next; > + } > + if (!newp) { > + newp = (afs_event_t *) osi_AllocSmallSpace(sizeof > (afs_event_t)); > + afs_evhashcnt++; > + newp->next = afs_evhasht[hashcode]; > + afs_evhasht[hashcode] = newp; > + newp->seq = 0; > + } > + newp->event = event; > + newp->refcount = 1; > + return newp; > + } > + > + > + /* Release the specified event */ > + #define relevent(evp) ((evp)->refcount--) > + > + void afs_osi_Sleep(char *event) > + { > + struct afs_event *evp; > + int seq; > + > + evp = afs_getevent(event); > + seq = evp->seq; > + while (seq == evp->seq) { > + AFS_ASSERT_GLOCK(); > + get_sleep_lock(event); > + AFS_GUNLOCK(); > + sleep(event, PZERO-2); > + AFS_GLOCK(); > + } > + relevent(evp); > + } > + > + void afs_osi_Wakeup(char *event) > + { > + struct afs_event *evp; > + lock_t * sleep_lock; > + > + evp = afs_getevent(event); > + sleep_lock = get_sleep_lock(event); > + if (evp->refcount > 1) { > + evp->seq++; > + wakeup(event); > + } > + spinunlock(sleep_lock); > + } > + #endif > *** ./src/afs/VNOPS/,afs_vnop_readdir.c Fri Nov 22 13:14:53 2002 > --- ./src/afs/VNOPS/afs_vnop_readdir.c Fri Jan 24 14:18:17 2003 > *************** > *** 32,37 **** > --- 32,42 ---- > #include "../afs/afs_osidnlc.h" > > > + #if defined(AFS_HPUX1122_ENV) > + #define DIRPAD 7 > + #else > + #define DIRPAD 3 > + #endif > /** > * A few definitions. This is until we have a proper header file > * which ahs prototypes for all functions > *************** > *** 172,178 **** > u_short d_reclen; > u_short d_namlen; > }; > ! #define NDIRSIZ_LEN(len) ((sizeof (struct dirent)+4 - > (MAXNAMLEN+1)) + (((len)+1 + 3) &~ > 3)) > #endif > #endif /* !defined(UKERNEL) */ > > --- 177,183 ---- > u_short d_reclen; > u_short d_namlen; > }; > ! #define NDIRSIZ_LEN(len) ((sizeof (struct dirent)+4 - > (MAXNAMLEN+1)) + (((len)+1 + > DIRPAD) &~ DIRPAD)) > #endif > #endif /* !defined(UKERNEL) */ > > *************** > *** 198,206 **** > * > * > */ > #if defined(AFS_HPUX100_ENV) > #define DIRSIZ_LEN(len) \ > ! ((sizeof (struct __dirent) - (_MAXNAMLEN+1)) + > (((len)+1 + 3) &~ 3)) > #else > #if defined(AFS_SUN56_ENV) > #define DIRSIZ_LEN(len) ((18 + (len) + 1 + 7) & ~7 ) > --- 203,212 ---- > * > * > */ > + > #if defined(AFS_HPUX100_ENV) > #define DIRSIZ_LEN(len) \ > ! ((sizeof (struct __dirent) - (_MAXNAMLEN+1)) + > (((len)+1 + DIRPAD) &~ DIRPAD)) > #else > #if defined(AFS_SUN56_ENV) > #define DIRSIZ_LEN(len) ((18 + (len) + 1 + 7) & ~7 ) > *************** > *** 406,412 **** > > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((slen + 4) & ~3) - slen, UIO_READ, > auio, code); > } > AFS_MOVE_LOCK(); > --- 412,418 ---- > > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((slen + 1 + DIRPAD) & ~DIRPAD) > - slen, UIO_READ, > auio, code); > } > AFS_MOVE_LOCK(); > *************** > *** 620,626 **** > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, > auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 4) & ~3) > - o_slen, UIO_READ, auio, code); > } > /* pad out the difference between rlen and slen... */ > if (DIRSIZ_LEN(o_slen) < rlen) { > --- 626,632 ---- > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, > auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 1 + > DIRPAD) & ~DIRPAD) - o_slen, UIO_READ, auio, > code); > } > /* pad out the difference between rlen and slen... */ > if (DIRSIZ_LEN(o_slen) < rlen) { > *************** > *** 683,689 **** > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, > auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 4) & ~3) > - o_slen, UIO_READ, auio, code); > } > /* pad out the difference between rlen and slen... */ > if (DIRSIZ_LEN(o_slen) < rlen) { > --- 689,695 ---- > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, > auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 1 + > DIRPAD) & ~DIRPAD) - o_slen, UIO_READ, auio, > code); > } > /* pad out the difference between rlen and slen... */ > if (DIRSIZ_LEN(o_slen) < rlen) { > *************** > *** 734,740 **** > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 4) & ~3) - o_slen, > UIO_READ, auio, code); > } > /* pad out the difference between rlen and slen... */ > --- 740,746 ---- > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 1 + DIRPAD) > & ~DIRPAD) - o_slen, > UIO_READ, auio, code); > } > /* pad out the difference between rlen and slen... */ > *************** > *** 882,888 **** > } > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 4) & ~3) > - o_slen, UIO_READ, auio, code); > } > /* pad out the difference between rlen and slen... */ > if (NDIRSIZ_LEN(o_slen) < rlen) { > --- 888,894 ---- > } > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 1 + > DIRPAD) & ~DIRPAD) - o_slen, UIO_READ, auio, > code); > } > /* pad out the difference between rlen and slen... */ > if (NDIRSIZ_LEN(o_slen) < rlen) { > *************** > *** 931,937 **** > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, > auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 4) & ~3) > - o_slen, UIO_READ, auio, code); > } > /* pad out the difference between rlen and slen... */ > if (NDIRSIZ_LEN(o_slen) < rlen) { > --- 937,943 ---- > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, > auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 1 + > DIRPAD) & ~DIRPAD) - o_slen, UIO_READ, auio, > code); > } > /* pad out the difference between rlen and slen... */ > if (NDIRSIZ_LEN(o_slen) < rlen) { > *************** > *** 977,983 **** > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 4) & ~3) - > o_slen, UIO_READ, auio, code); > } > /* pad out the difference between rlen and slen... */ > if (NDIRSIZ_LEN(o_slen) < rlen) { > --- 983,989 ---- > AFS_UIOMOVE(ode->name, o_slen, UIO_READ, auio, code); > /* pad out the remaining characters with zeros */ > if (code == 0) { > ! AFS_UIOMOVE(bufofzeros, ((o_slen + 1 + DIRPAD) > & ~DIRPAD) - o_slen, UIO_READ, auio, > code); > } > /* pad out the difference between rlen and slen... */ > if (NDIRSIZ_LEN(o_slen) < rlen) { > *** ./src/afs/,afs_util.c Thu Nov 14 15:03:57 2002 > --- ./src/afs/afs_util.c Tue Dec 17 17:09:06 2002 > *************** > *** 119,125 **** > --- 119,129 ---- > > afs_warn(a,b,c,d,e,f,g,h,i,j) > char *a; > + #if defined( AFS_USE_VOID_PTR) > + void *b, *c, *d, *e, *f, *g, *h, *i, *j; > + #else > long b,c,d,e,f,g,h,i,j; > + #endif > { > AFS_STATCNT(afs_warn); > > *************** > *** 148,154 **** > --- 152,162 ---- > > afs_warnuser(a,b,c,d,e,f,g,h,i,j) > char *a; > + #if defined( AFS_USE_VOID_PTR) > + void *b, *c, *d, *e, *f, *g, *h, *i, *j; > + #else > long b,c,d,e,f,g,h,i,j; > + #endif > { > AFS_STATCNT(afs_warnuser); > if (afs_showflags & GAGUSER) > *** ./src/afs/,afs_osi.c Tue Sep 10 17:33:27 2002 > --- ./src/afs/afs_osi.c Tue Jan 7 10:58:14 2003 > *************** > *** 402,407 **** > --- 402,411 ---- > #endif > #ifdef AFS_HPUX_ENV > { > + #if !defined(AFS_HPUX1122_ENV) > + /*DEE drop the setting of the clock for now. spl7 is not > + * known on hpux11.22 > + */ > register ulong_t s; > struct timeval t; > t.tv_sec = atv->tv_sec; > *************** > *** 408,413 **** > --- 412,418 ---- > t.tv_usec = atv->tv_usec; > s = spl7(); time = t; (void) splx(s); > resettodr(atv); > + #endif > } > #else > { > *** ./src/afsd/,Makefile.in Fri Oct 12 23:20:44 2001 > --- ./src/afsd/Makefile.in Wed Dec 18 13:38:12 2002 > *************** > *** 112,117 **** > --- 112,120 ---- > hp_ux10? | hp_ux11? ) \ > ${INSTALL} -f afs.rc.hpux10 > ${DEST}/root.client/usr/vice/etc/dkload/afs.rc ;\ > ${INSTALL} -f afs.hpux102.driver > ${DEST}/root.client/usr/vice/etc/afs.driver ;;\ > + hp_ux1122 ) \ > + ${INSTALL} -f afs.rc.hpux10 > ${DEST}/root.client/usr/vice/etc/dkload/afs.rc ;\ > + ${INSTALL} -f afs.hpux1122.driver > ${DEST}/root.client/usr/vice/etc/afs.driver ;;\ > alpha_dux* ) \ > ${INSTALL} -f afs.rc.alpha_dux40 > ${DEST}/root.client/usr/vice/etc/dkload/afs.rc ;;\ > hp?00_ux10? ) \ > *** ./src/afsd/,afs.hpux1122.driver Wed Dec 18 13:42:48 2002 > --- ./src/afsd/afs.hpux1122.driver Wed Dec 18 13:43:29 2002 > *************** > *** 0 **** > --- 1,126 ---- > + * Copyright 2000, International Business Machines > Corporation and others. > + * All Rights Reserved. > + * > + * This software has been released under the terms of the IBM Public > + * License. For details, see the LICENSE file in the > top-level source > + * directory or online at http://www.openafs.org/dl/license10.html > + > + * > + * $Revision: 1.2 $ > + * > + * The following devices are those that can be specified in > the system > + * description file. The name specified must agree with the > name shown, > + * or with an alias. > + * > + * name handle type mask block char > + * > + $DEVICE > + afs afsc 10 100 -1 -1 > + ** Reserved for Third Party and User Drivers. > + * --- - - -1 38 > + * --- - - -1 39 > + * --- - - -1 40 > + * --- - - -1 41 > + * --- - - -1 42 > + * --- - - -1 43 > + * --- - - 8 -1 > + * --- - - 15 -1 > + * --- - - 16 -1 > + * --- - - 17 -1 > + * --- - - 18 -1 > + $$$ > + > + $CDIO > + * > + * The following entries form the cdio table. > + * field 1: cdio name > + * field 2: required, optional > + * > + $$$ > + > + $DRIVER_INSTALL > + > ************************************************************** > ************* > + * Driver install table > + * > + * This table contains the name of drivers which have > converged I/O header > + * structures and install entry points. Drivers in this > table should not > + * be defined in the driver table above. > + > ************************************************************** > ************* > + * Driver Block major Char major > + $$$ > + > + $ALIAS > + * > + * The following entries form the alias table. > + * field 1: product # field 2: driver name > + * > + $$$ > + > + $TUNABLE > + * > + * The following entries form the tunable parameter table. > Any of these > + * values can be overwritten in the dfile. However, before > changing any > + * value, know the ramifications of your change. > + * > + $$$ > + > + $DRIVER_DEPENDENCY > + * > + * Driver dependency table, if one driver is present, what > + * other drivers should also be in the dfile. > + * NOTE: A maximum of 6 dependency entries my follow the driver name. > + * NOTE: This mechanism does not support chaining. In other > words, if > + * a driver is included as a dependency, that driver > will not be > + * checked for its dependencies. > + * > + * Driver name <dependency> <dependency> ..... > + * > + $$$ > + > + $DRIVER_LIBRARY > + * > + * The driver/library table. This table defines which > libraries a given > + * driver depends on. If the driver is included in the > dfile, then the > + * libraries that driver depends on will be included on the > ld(1) command > + * line. Only optional libraries *need* to be specified in > this table, > + * (but required ones can be included, as well). > + * > + * Driver handle <libraries> > + * > + * subsystems first > + afs libafs64.nonfs.a > + $$$ > + > + $LIBRARY > + * > + * The library table. Each element in the library table describes > + * one unique library. The flag member is a boolean value, it is > + * initialized to 1 if the library should *always* be included on > + * the ld(1) command line, or 0 if the library is optional (i.e. it > + * is only included when one or more drivers require it). The order > + * of the library table determines the order of the libraries on the > + * ld(1) command line, (i.e. defines an implicit load order). New > + * libraries must be added to this table. > + * Note: libhp-ux.a must be the last entry, do not place > anything after it. > + * > + * Library <required> > + * > + libafs64.nonfs.a 0 > + $$$ > + > + $SUBSYSTEMS_DEFINE > + * Subsystem #define table. For any subsystem that is found > in the dfile > + * and appears below, a #define is generated in the conf.c > file. This > + * is used to include any space defined in space.h. > + afs > + $$$ > + > + $DRIVER_PRODUCT > + * > + * Driver product table. The following generates a table of > supported products > + * for a given interface card. The input is a driver handle > followed by a list > + * of product/vendor id's. What is produced is a table of > these product/vendor > + * id's to be used by the interface driver for further > qualification during > + * booting and the setting of root device location. > + * > + $$$ > *** ./src/config/,afs_sysnames.h Tue Sep 10 17:33:45 2002 > --- ./src/config/afs_sysnames.h Tue Dec 17 13:49:07 2002 > *************** > *** 43,48 **** > --- 43,50 ---- > #define SYS_NAME_ID_hp800_ux101 413 > #define SYS_NAME_ID_hp_ux102 414 > #define SYS_NAME_ID_hp_ux110 415 > + /* Assume hp_ux11i is 416 */ > + #define SYS_NAME_ID_hp_ux1122 417 > > #define SYS_NAME_ID_mac2_51 500 > #define SYS_NAME_ID_mac_aux10 501 > *** ./src/config/,Makefile.hp_ux1122.in Tue Dec 17 13:42:13 2002 > --- ./src/config/Makefile.hp_ux1122.in Tue Dec 17 13:47:47 2002 > *************** > *** 0 **** > --- 1,37 ---- > + # Copyright 2000, International Business Machines > Corporation and others. > + # All Rights Reserved. > + # > + # This software has been released under the terms of the IBM Public > + # License. For details, see the LICENSE file in the > top-level source > + # directory or online at http://www.openafs.org/dl/license10.html > + > + AFS_OSTYPE = HPUX > + CC=/opt/ansic/bin/cc > + MT_CC=/opt/ansic/bin/cc > + XCFLAGS0=-ldld -lc -Wp,-H200000 -Wl,-a,archive_shared > -DAUTH_DBM_LOG +z -Wl,+k > -D_LARGEFILE64_SOURCE > + XCFLAGS=${XCFLAGS0} > + XCFLAGS64=${XCFLAGS0} +DD64 > + MT_CFLAGS=-D_POSIX_C_SOURCE=199506L -DAFS_PTHREAD_ENV ${XCFLAGS} > + XLIBS=@LIB_AFSDB@ > + XLIBELFA=-lelf > + TXLIBS=/usr/lib/hpux32/libcurses.so > + MTLIBS=-lpthread > + SHLIB_SUFFIX=sl > + SHLIB_LDFLAGS=-b -Bsymbolic > + SHLIB_LINKER=ld -b > + LWP_OPTMZ=-O > + OPTMZ=-O > + DBG=-g > + RANLIB=/usr/bin/ranlib > + INSTALL=${TOP_SRCDIR}/pinstall/pinstall > + RM=/bin/rm > + CP=/bin/cp > + AR=/bin/ar > + AS=/usr/ccs/bin/as > + MV=/bin/mv > + LD=/bin/ld > + LEX=/opt/langtools/bin/lex > + DBM=/lib/hpux32/libndbm.so > + PAM_CFLAGS="-b +z -Wl,+k" > + PAMLIBS=/usr/lib/hpux32/libpam.so > + YACC=/opt/langtools/bin/yacc > *** ./src/config/,param.hp_ux1122.h Tue Dec 17 13:49:42 2002 > --- ./src/config/param.hp_ux1122.h Tue Dec 17 17:07:53 2002 > *************** > *** 0 **** > --- 1,101 ---- > + /* > + * Copyright 2000, International Business Machines > Corporation and others. > + * All Rights Reserved. > + * > + * This software has been released under the terms of the IBM Public > + * License. For details, see the LICENSE file in the > top-level source > + * directory or online at http://www.openafs.org/dl/license10.html > + */ > + > + /* THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT */ > + > + #ifndef AFS_PARAM_H > + #define AFS_PARAM_H > + > + #define AFS_HPUX_ENV 1 > + #define AFS_HPUX90_ENV 1 > + #define AFS_HPUX100_ENV 1 > + #define AFS_HPUX101_ENV 1 > + #define AFS_HPUX102_ENV 1 > + #define AFS_HPUX110_ENV 1 > + #define AFS_HPUX1122_ENV 1 > + > + #define AFS_64BIT_ENV 1 /* Defines > afs_int32 as int, not long. */ > + #if defined(__LP64__) > + #define AFS_64BITPOINTER_ENV 1 /* pointers are > 64 bits. */ > + #endif > + > + #include <afs/afs_sysnames.h> > + > + #define AFS_SYSCALL 48 /* slot reserved for AFS */ > + > + /* Machine / Operating system information */ > + #define SYS_NAME "hp_ux1122" > + #define SYS_NAME_ID SYS_NAME_ID_hp_ux1122 > + #define AFSBIG_ENDIAN 1 > + #define AFS_HAVE_FFS 1 > + #define AFS_HAVE_STATVFS 1 /* System supports statvfs */ > + #define AFS_GLOBAL_SUNLOCK 1 > + #define RXK_LISTENER_ENV 1 > + #define AFS_USERSPACE_IP_ADDR 1 > + #define AFS_GCPAGS 0 /* if nonzero, garbage > collect PAGs */ > + #define AFS_USE_VOID_PTR 1 > + /* > + * #define AFS_VM_RDWR_ENV 1 > + */ > + #define AFS_TEXT_ENV 1 /* Older kernels use TEXT */ > + #define AFS_USE_GETTIMEOFDAY 1 /* use gettimeofday to > implement rx clock */ > + #define NEARINODE_HINT 1 /* hint to ufs module to > scatter inodes on disk*/ > + #define nearInodeHash(volid, hval) { > \ > + unsigned char* ts = (unsigned > char*)&(volid)+sizeof(volid)-1;\ > + for ( (hval)=0; ts >= (unsigned > char*)&(volid); ts--){\ > + (hval) *= 173; \ > + (hval) += *ts; \ > + } \ > + } > + > + /* Extra kernel definitions (from kdefs file) */ > + #ifdef KERNEL > + #define _KERNEL 1 > + #define afsio_iov uio_iov > + #define afsio_iovcnt uio_iovcnt > + #define afsio_offset uio_offset > + #define afsio_seg uio_seg > + #define afsio_resid uio_resid > + #define AFS_UIOSYS UIOSEG_KERNEL > + #define AFS_UIOUSER UIOSEG_USER > + #define AFS_CLBYTES CLBYTES > + #define AFS_MINCHANGE 2 > + #define osi_GetTime(x) do { struct timeval > osi_GetTimeVar; uniqtime(&osi_GetTimeVar); > (x)->tv_sec = osi_GetTimeVar.tv_sec; (x)->tv_usec = > osi_GetTimeVar.tv_usec; } while(0) > + #define AFS_KALLOC kmem_alloc > + #define AFS_KFREE kmem_free > + #define VATTR_NULL vattr_null > + > + #if defined(__LP64__) > + #define AFS_HPUX_64BIT_ENV 1 > + #endif > + > + #ifndef UKERNEL > + /* > + * On HP-UX, sys/socket.h includes sys/uio.h, and sys/file.h and > + * sys/uio.h #include each other, and there's no simple way > to avoid a > + * warning about the struct uio declaration not being > visible outside > + * of some prototype or other. So, we put in a tenative > declaration to > + * supress the warnings. > + */ > + struct uio; > + > + #define memset(A, B, S) bzero(A, S) > + #define memcpy(B, A, S) bcopy(A, B, S) > + #define memcmp(A, B, S) bcmp(A, B, S) > + #endif > + #endif /* KERNEL */ > + #define AFS_DIRENT > + /* Non-standard definitions */ > + #ifndef EDQUOT > + #define EDQUOT 69 /* Disc quota exceeded > */ > + #endif > + > + #define USE_UCONTEXT /* should be in afsconfig.h */ > + > + #endif /* AFS_PARAM_H */ > *** ./src/dir/,dir.c Wed Aug 21 15:53:25 2002 > --- ./src/dir/dir.c Tue Dec 17 14:04:35 2002 > *************** > *** 76,82 **** > #ifndef AFS_LINUX20_ENV > #include "../netinet/in.h" > #endif > ! #if !defined(AFS_SUN5_ENV) && !defined(AFS_LINUX20_ENV) > #include "../h/mbuf.h" > #endif > #else /* !defined(UKERNEL) */ > --- 76,82 ---- > #ifndef AFS_LINUX20_ENV > #include "../netinet/in.h" > #endif > ! #if !defined(AFS_SUN5_ENV) && !defined(AFS_LINUX20_ENV) > &&!defined(AFS_HPUX1122_ENV) > #include "../h/mbuf.h" > #endif > #else /* !defined(UKERNEL) */ > *** ./src/libafs/,MakefileProto.HPUX.in Thu Nov 14 14:08:41 2002 > --- ./src/libafs/MakefileProto.HPUX.in Mon Jan 20 15:32:48 2003 > *************** > *** 66,71 **** > --- 66,72 ---- > # seems to hang). When the compiler sees the +ES1.Xindirect_calls > # option, however, it issues a warning and turns off +Z. > # > + <hp_ux110 hp_ux102> > KDEFS= +ES1.Xindirect_calls +XixdU +Hx0 +ESlit +ESsfc > +ESssf -Wp,-H300000 -D_KERNEL > -D_KERNEL_BUILD -D_UNSUPPORTED \ > -DMP +R500 -Wl,+k $(CPU_KDEFS) > KDEFS_32 = +DA1.0 +DS1.0 > *************** > *** 73,78 **** > --- 74,91 ---- > # warning 478: "+Z" and "+ES1.Xindirect_calls" are mutually > exclusive. "+Z" ignored. > # warning 530: LP64 migration: Casting from loose to strict > alignment: Resulting pointer > may be misaligned. > KDEFS_64 = +DA2.0W +DS2.0 +M2 +W 478,530 > + > + <all> > + > + <hp_ux1122> > + KDEFS= +kernel -Wp,-H300000 -D_KERNEL -D_KERNEL_BUILD > -D_UNSUPPORTED \ > + -DFINE_GRAINED_PROTO_FILES \ > + -DMP -Wl,+k $(CPU_KDEFS) > + KDEFS_32 = > + KDEFS_64 = +DD64 > + > + <all> > + > DEFINES= -DAFSDEBUG -DKERNEL -DAFS -DVICE -DNFS -DUFS > -DINET -DQUOTA -DGETMOUNT > -DHPONCPLUS > OPTF=${OPT} > OPTF2=${OPT2} > *************** > *** 90,100 **** > > include Makefile.common > > BITS = 64 32 > > setup: > -$(RM) -f h net dux machine netinet nfs rpc s200 ufs sys > ! ln -s /usr/include/sys h > ln -s /etc/conf/net net > ln -s /etc/conf/dux dux > ln -s /etc/conf/machine machine > --- 103,117 ---- > > include Makefile.common > > + <hp_ux110 hp_ux102> > BITS = 64 32 > + <hp_ux1122> > + BITS = 64 > + <all> > > setup: > -$(RM) -f h net dux machine netinet nfs rpc s200 ufs sys > ! ln -fs /etc/conf/h h > ln -s /etc/conf/net net > ln -s /etc/conf/dux dux > ln -s /etc/conf/machine machine > *************** > *** 102,108 **** > --- 119,129 ---- > ln -s /etc/conf/nfs nfs > ln -s /usr/include/rpc rpc > ln -s /etc/conf/machine s200 > + <hp_ux110 hp_ux102> > ln -s /etc/conf/ufs ufs > + <hp_ux1122> > + ln -fs /etc/conf/sys ufs > + <all> > ln -s /usr/include/sys sys > for b in $(BITS); do \ > for t in $(KOBJ); do \ > *** ./src/libafs/,Makefile.common Tue Jan 21 08:50:07 2003 > --- ./src/libafs/Makefile.common Tue Jan 21 08:52:44 2003 > *************** > *** 19,25 **** > > .c.o: > $(CC) $(CFLAGS) -c $< > ! CRULE1= $(CC) $(CFLAGS) -c $? > CRULE2= $(CC) $(OPTF) $(CFLAGS) -c $? > CRULE3= $(CC) $(OPTF2) $(CFLAGS) -c $? > CRULE4= $(CC) $(DBG) $(CFLAGS) -c $? > --- 19,25 ---- > > .c.o: > $(CC) $(CFLAGS) -c $< > ! CRULE1= $(CC) -g0 $(CFLAGS) -c $? > CRULE2= $(CC) $(OPTF) $(CFLAGS) -c $? > CRULE3= $(CC) $(OPTF2) $(CFLAGS) -c $? > CRULE4= $(CC) $(DBG) $(CFLAGS) -c $? > *** ./src/libuafs/,MakefileProto.HPUX.in Fri Sep 7 18:35:24 2001 > --- ./src/libuafs/MakefileProto.HPUX.in Tue Dec 17 14:12:06 2002 > *************** > *** 30,41 **** > --- 30,49 ---- > # System specific build commands and flags > CC = /opt/ansic/bin/cc > DEFINES= -D_REENTRANT -DAFSDEBUG -DKERNEL -DUKERNEL -DAFS -DVICE > + <hp_ux102 hp_ux110> > KOPTS=-Wp,-H200000 -Wl,-a,archive +DA1.0 +z > + <hp_ux1122> > + KOPTS=-Wp,-H200000 -Wl,-a,archive_shared > + <all> > CFLAGS=-I. -I.. -I${TOP_SRCDIR}/config ${FSINCLUDES} > $(DEFINES) $(KOPTS) ${DBUG} > OPTF=-O > WEBOPTS = -I../nsapi -DNETSCAPE_NSAPI -DNET_SSL -DXP_UNIX > -DMCC_HTTPD > > + <hp_ux102 hp_ux110> > TEST_CFLAGS= -Wp,-H200000 +DA1.0 +z > -D_POSIX_C_SOURCE=199506L -DAFS_PTHREAD_ENV -Dhpux > -DAFS_HPUX_ENV > + <hp_ux1122> > + TEST_CFLAGS= -Wp,-H200000 -D_POSIX_C_SOURCE=199506L > -DAFS_PTHREAD_ENV -Dhpux > -DAFS_HPUX_ENV > + <all> > TEST_LDFLAGS= > TEST_LIBS=-lnsl -lm -lpthread -ldld -lc > > *** ./src/lwp/,lwp.h Sun Aug 25 23:34:10 2002 > --- ./src/lwp/lwp.h Tue Dec 17 14:14:41 2002 > *************** > *** 293,302 **** > --- 293,311 ---- > * cases, and also between machines apparently running the same OS > * version. > */ > + /* > + * On ia64 where the ucontext is used, it can be an extra 48K > + * Need to account for this. There might be two of these on the > + * stack too. This needs to be checked. > + */ > + #if defined(USE_UCONTEXT) && defined(HAVE_UCONTEXT_H) > + #define AFS_LWP_MINSTACKSIZE (288 * 1024) > + #else > #if defined(AFS_LINUX22_ENV) > #define AFS_LWP_MINSTACKSIZE (192 * 1024) > #else > #define AFS_LWP_MINSTACKSIZE (48 * 1024) > + #endif > #endif > > /* Action to take on stack overflow. */ > *** ./src/lwp/,Makefile.in Wed Sep 19 17:25:25 2001 > --- ./src/lwp/Makefile.in Tue Dec 17 14:13:07 2002 > *************** > *** 87,93 **** > ${CC} -E -I${TOP_INCDIR} process.S >process.ss ; \ > ${AS} process.ss -o process.o ; \ > $(RM) -f process.S ;;\ > ! hp_ux110 ) \ > ${CC} ${CFLAGS} -c process.c;; \ > *) \ > /lib/cpp -P -I${TOP_INCDIR} process.s process.ss; \ > --- 87,93 ---- > ${CC} -E -I${TOP_INCDIR} process.S >process.ss ; \ > ${AS} process.ss -o process.o ; \ > $(RM) -f process.S ;;\ > ! hp_ux11* ) \ > ${CC} ${CFLAGS} -c process.c;; \ > *) \ > /lib/cpp -P -I${TOP_INCDIR} process.s process.ss; \ > *** ./src/pinstall/,install.c Wed Aug 21 15:53:27 2002 > --- ./src/pinstall/install.c Tue Dec 17 14:20:20 2002 > *************** > *** 163,169 **** > static int > quickStrip (iname, oname, ignored, copy_only) > char *iname, *oname; { > ! int pid, status; > static char *strip[] = { > "strip", 0, 0, > }; > --- 163,170 ---- > static int > quickStrip (iname, oname, ignored, copy_only) > char *iname, *oname; { > ! int status; > ! pid_t pid; > static char *strip[] = { > "strip", 0, 0, > }; > *************** > *** 187,193 **** > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid) { > perror("waitpid"); > return -1; > } > --- 188,194 ---- > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid && errno != > ECHILD) { > perror("waitpid"); > return -1; > } > *************** > *** 233,239 **** > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid) { > perror("waitpid"); > return -1; > } > --- 234,240 ---- > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid && errno != > ECHILD) { > perror("waitpid"); > return -1; > } > *************** > *** 272,278 **** > static > quickStrip (iname, oname, ignored, copy_only) > char *iname, *oname; { > ! int pid, status; > static char *strip[] = { > "strip", 0, 0, > }; > --- 273,280 ---- > static > quickStrip (iname, oname, ignored, copy_only) > char *iname, *oname; { > ! int status; > ! pid_t pid; > static char *strip[] = { > "strip", 0, 0, > }; > *************** > *** 296,302 **** > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid) { > perror("waitpid"); > return -1; > } > --- 298,304 ---- > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid && errno != > ECHILD) { > perror("waitpid"); > return -1; > } > *************** > *** 334,340 **** > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid) { > perror("waitpid"); > return -1; > } > --- 336,342 ---- > exit(1); > > default: /* parent */ > ! if (waitpid(pid, &status, 0) != pid && errno != > ECHILD) { > perror("waitpid"); > return -1; > } > *** ./src/rx/,rx_packet.c Tue Sep 10 17:33:55 2002 > --- ./src/rx/rx_packet.c Tue Dec 17 15:54:15 2002 > *************** > *** 33,39 **** > #include "../afs/sysincludes.h" > #endif > #include "../h/socket.h" > ! #if !defined(AFS_SUN5_ENV) && !defined(AFS_LINUX20_ENV) > #if !defined(AFS_OSF_ENV) && !defined(AFS_AIX41_ENV) > #include "../sys/mount.h" /* it gets pulled in by > something later anyway */ > #endif > --- 33,39 ---- > #include "../afs/sysincludes.h" > #endif > #include "../h/socket.h" > ! #if !defined(AFS_SUN5_ENV) && !defined(AFS_LINUX20_ENV) && > !defined(AFS_HPUX1122_ENV) > #if !defined(AFS_OSF_ENV) && !defined(AFS_AIX41_ENV) > #include "../sys/mount.h" /* it gets pulled in by > something later anyway */ > #endif > *************** > *** 959,965 **** > * message receipt is done in rxk_input or rx_put. > */ > > ! #ifdef AFS_SUN5_ENV > /* > * Copy an mblock to the contiguous area pointed to by cp. > * MTUXXX Supposed to skip <off> bytes and copy <len> bytes, > --- 959,965 ---- > * message receipt is done in rxk_input or rx_put. > */ > > ! #if defined(AFS_SUN5_ENV) || defined(AFS_HPUX1122_ENV) > /* > * Copy an mblock to the contiguous area pointed to by cp. > * MTUXXX Supposed to skip <off> bytes and copy <len> bytes, > *************** > *** 1081,1087 **** > > #if !defined(AFS_LINUX20_ENV) > int rx_mb_to_packet(amb, free, hdr_len, data_len, phandle) > ! #ifdef AFS_SUN5_ENV > mblk_t *amb; > #else > struct mbuf *amb; > --- 1081,1087 ---- > > #if !defined(AFS_LINUX20_ENV) > int rx_mb_to_packet(amb, free, hdr_len, data_len, phandle) > ! #if defined(AFS_SUN5_ENV) || defined(AFS_HPUX1122_ENV) > mblk_t *amb; > #else > struct mbuf *amb; > *** ./src/rx/HPUX/,rx_kmutex.h Thu Nov 14 14:12:51 2002 > --- ./src/rx/HPUX/rx_kmutex.h Tue Dec 17 15:50:23 2002 > *************** > *** 112,122 **** > --- 112,129 ---- > > #define MUTEX_TRYENTER(a) b_cpsema(a) > > + #ifdef AFS_HPUX1122_ENV > #define MUTEX_ENTER(a) \ > + ((b_owns_sema(a)) ? osi_Panic("Already Held") : b_psema(a)) > + #define MUTEX_EXIT(a) \ > + ((b_owns_sema(a)) ? b_vsema(a) : osi_Panic("mutex not held")) > + #else > + #define MUTEX_ENTER(a) \ > ((b_owns_sema(a)) ? (osi_Panic("Already Held"), 0) : b_psema(a)) > > #define MUTEX_EXIT(a) \ > ((b_owns_sema(a)) ? b_vsema(a) : (osi_Panic("mutex not > held"), 0)) > + #endif > > #undef MUTEX_ISMINE > #define MUTEX_ISMINE(a) b_owns_sema(a) > *** ./src/rx/,rx_kcommon.h Thu Nov 14 16:27:16 2002 > --- ./src/rx/rx_kcommon.h Tue Dec 17 14:22:11 2002 > *************** > *** 41,47 **** > --- 41,49 ---- > #include "../h/dir.h" > #endif > #include "../h/buf.h" > + #if !defined(AFS_HPUX1122_ENV) > #include "../h/mbuf.h" > + #endif > #else > #if defined(AFS_XBSD_ENV) > #include "../h/dirent.h" > *** ./src/rx/,rx_kcommon.c Thu Dec 19 14:11:36 2002 > --- ./src/rx/rx_kcommon.c Thu Dec 19 14:11:23 2002 > *************** > *** 750,756 **** > --- 750,758 ---- > { > register afs_int32 code; > struct socket *newSocket; > + #if !defined(AFS_HPUX1122_ENV) > register struct mbuf *nam; > + #endif > struct sockaddr_in myaddr; > int wow; > #ifdef AFS_HPUX110_ENV > *************** > *** 804,810 **** > --- 806,814 ---- > code = sobind(newSocket, bindnam, addrsize); > if (code) { > soclose(newSocket); > + #if !defined(AFS_HPUX1122_ENV) > m_freem(nam); > + #endif > goto bad; > } > > *** ./,acinclude.m4 Wed Dec 4 18:45:26 2002 > --- ./acinclude.m4 Tue Dec 17 13:24:43 2002 > *************** > *** 292,297 **** > --- 292,300 ---- > hppa*-hp-hpux11*) > AFS_SYSNAME="hp_ux110" > ;; > + ia64-hp-hpux*) > + AFS_SYSNAME="hp_ux1122" > + ;; > hppa*-hp-hpux10*) > AFS_SYSNAME="hp_ux102" > ;; > _______________________________________________ OpenAFS-devel mailing list [EMAIL PROTECTED] https://lists.openafs.org/mailman/listinfo/openafs-devel
