summaryrefslogtreecommitdiffstats
path: root/lib/libstand
Commit message (Collapse)AuthorAgeFilesLines
* Replace index() and rindex() calls with strchr() and strrchr().ed2012-01-031-3/+3
| | | | | | | | | | The index() and rindex() functions were marked LEGACY in the 2001 revision of POSIX and were subsequently removed from the 2008 revision. The strchr() and strrchr() functions are part of the C standard. This makes the source code a lot more consistent, as most of these C files also call into other str*() routines. In fact, about a dozen already perform strchr() calls.
* Merge index() and strchr() together.ed2012-01-031-8/+7
| | | | | | | | | | | | | | | | | As I looked through the C library, I noticed the FreeBSD MIPS port has a hand-written version of index(). This is nice, if it weren't for the fact that most applications call strchr() instead. Also, on the other architectures index() and strchr() are identical, meaning we have two identical pieces of code in the C library and statically linked applications. Solve this by naming the actual file strchr.[cS] and let it use __strong_reference()/STRONG_ALIAS() to provide the index() routine. Do the same for rindex()/strrchr(). This seems to make the C libraries and static binaries slightly smaller, but this reduction in size seems negligible.
* Add placeholder code for prepending pathnames to tftp.ed2011-12-221-0/+7
| | | | | | | | | | | | At work we have a single tftp server that provides installation data for a variety of operating systems. I'd rather place our FreeBSD-related files in a subdirectory, instead of the root. It would be nice if this setting could be run-time configurable, but at least in our specific case, this is not possible, as pxeboot is chainloaded through pxelinux. Sponsored by: Kumina bv
* - Removing some unneeded definitions of NULL(cruft related to 1970's C).avatar2011-07-106-29/+15
| | | | | | | | | | | | | | | | | | | | | | In C90, NULL is guaranteed to be declared in <stddef.h> and also in <string.h>. Though the correct way to define NULL in FreeBSD is to include <sys/_null.h>, other parts of libstand still require <string.h> to build; therefore, we keep <string.h> in stand.h and add a note about this; - Removing no longer used 'Prototype' definition. Quote from bde@: 'Cruft related to getting incomplete struct declarations within prototypes forward-declared before the structs. It doesn't mean "prototype" but only part of a prototype-related hack. No longer used.' - Replacing iaddr_t with uintptr_t; - Removing use of long double to determine alignment. Use a fixed 16 byte alignment instead; Reviewed by: bde Obtained from: DragonFlyBSD (partially) MFC after: 1 month
* style(9) cleanupkevlo2011-07-101-1/+1
|
* Fixing building bustage on 32 bits platforms when WARNS >= 2. Note thatavatar2011-07-082-5/+10
| | | | | | | | | this fix only applies to zalloc.c, the other part of libstand such like qdivrem.c still gives compilation warnings on sparc64 tinderbox builds; therefore, WARNS level isn't changed for now. Submitted by: Garrett Cooper <yanegomi@gmail.com> Reviewed by: bde
* Fixes to newer tftp code in libstand:rodrigc2011-06-241-51/+132
| | | | | | | | | | | | | | | | | | (1) Coding style changes. (2) If the server does not acknowledge any blocksize option, revert to the default blocksize of 512 bytes. (3) Send ACK if the first packet happens to be the last packet. (4) Do not accept blocksize greater than what was requested. (5) Drop any unwanted OACK received if a tftp transfer is already in progress. (6) Terminate incomplete transfers with a special no-error ERROR packet. Otherwise we rely on the tftp server to time out, which it does eventually, after re-sending the last packet several times and spamming the system log about it every time. This idea is borrowed from the PXE client, which does exactly that. Submitted by: Alexander Kabaev <kan@FreeBSD.org> Reviewed and Tested by: Santhanakrishnan Balraj <sbalraj at juniper dot net>
* Setting warnings without make universe considered harmful. Revert to WARNS=0imp2011-06-161-1/+1
| | | | until such time that the warnings at =2 are fixed for all platforms.
* Using the correct format string(%zu) for size_t type. This should fix 64avatar2011-06-161-1/+1
| | | | | | bits builds. Submitted by: Garrett Cooper <yanegomi@gmail.com>
* Unbreaking build on sparc64.avatar2011-06-161-3/+3
| | | | Submitted by: Garrett Cooper <yanegomi@gmail.com>
* Bring back following change which was undone in previous commit:rodrigc2011-06-151-4/+4
| | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------ r172854 | marius | 2007-10-21 10:03:18 -0700 (Sun, 21 Oct 2007) | 16 lines Changed paths: M /head/lib/libstand/tftp.c - Given that we tell the compiler that struct ip is packed and 32-bit aligned, GCC 4.2.1 also generates code for sendudp() that assumes this alignment. GCC 4.2.1 however doesn't 32-bit align wbuf, causing the loader to crash due to an unaligned access of wbuf in sendudp() when netbooting sparc64. Solve this by specifying wbuf as packed and 32-bit aligned, too. As for lastdata and readudp() this currently is no issue when compiled with GCC 4.2.1, though give lastdata the same treatment as wbuf for consistency and possibility of being affected in the future. [1] - Sprinkle const on a lookup table. ------------------------------------------------------------------------
* Increase WARNS level to 2.rodrigc2011-06-151-1/+1
|
* (1) When sending the TFTP RRQ packet to read a file,rodrigc2011-06-151-35/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | send along the "blksize" option specified in RFC2348, and the "tsize" option specified in RFC2349. Add code to parse the TFTP Option Acknowledgement (OACK) packet as specified in RFC2347. For TFTP servers which support the "blksize" option, we can specify a TFTP Data block size larger than the default 512 bytes specified in RFC1350. This offers greater read performance when downloading files. We request an initial size of 1428 bytes, which is less than the Ethernet MTU of 1500 bytes. If the TFTP server sends back an OACK packet, then use the block size specified in the OACK packet. Most times it is usually the same value as what we request. If the TFTP server supports RFC2348, we will see performance improvements by transferring files over TFTP with larger block sizes. If we do not get back an OACK packet, then we most likely we are interoperating with a legacy TFTP server that does not support TFTP extension options, so default to the block size of 512 bytes. (2) If the "tftp.blksize" environment variable is set, then take that value and use it when sending the TFTP RRQ packet, instead of 1428. This allows us to set different values of "tftp.blksize" in the loader, so that we can test out different TFTP block sizes at run time. Obtained from: Juniper Networks Fixed by: rodrigc
* Currently tftp code in the loader retransmits the previous packet if it ↵rodrigc2011-06-151-0/+4
| | | | | | | | | | receives any unwanted packet(non-tftp). Change this to retransmit the packet(request or ack) only after a timeout. Obtained from: Juniper Networks Fixed by: Santhanakrishnan Balraj <sbalraj at juniper dot net>
* Added sendrecv_tftp function instead of sendrecv for use by tftp.rodrigc2011-06-151-2/+55
| | | | | | | | | | | In sendrecv_tftp: * Upon receving an unexpected block of data or error, resend the ACK immediately instead of waiting till the expiry of receive data timeout to resend the ACK. * change the receive timeout value between retries to be 2xMINTMO. Obtained from: Juniper Networks Fixed by: Santhanakrishnan Balraj <sbalraj at juniper dot net>
* In sendrecv function, change the receive timeout value between retriesrodrigc2011-06-151-1/+1
| | | | | | | | to increase in steps of MINTMO, instead of doubling the timeout for every retry. Obtained from: Juniper Networks Fixed by: Santhanakrishnan Balraj <sbalraj at juniper dot net>
* Obtain bswap64() function implementation fromrodrigc2011-06-101-10/+26
| | | | | | version 1.3 of src/common/lib/libc/gen/bswap64.c in NetBSD. Obtained from: NetBSD
* Rename DEBUG macro to TFTP_DEBUG, to be more consistent withrodrigc2011-05-031-5/+5
| | | | debug macros in other files.
* - Comment out unused variable.rodrigc2011-05-031-2/+2
| | | | - Add parentheses around expression to eliminate compiler warning.
* Add #include <netinet/in_pcb.h> for missing forward declation ofrodrigc2011-05-032-0/+2
| | | | struct inpcb.
* Switch to ANSI function prototypes in a few places.rodrigc2011-05-036-43/+22
| | | | Get rid of some unused parameter warnings.
* Fix typos - remove duplicate "the".brucec2011-02-211-1/+1
| | | | | | PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
* On i386 and amd64, consistently use the following options whenever wedim2011-01-051-1/+1
| | | | | | want to avoid using any "advanced" CPU features: -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
* In lib/libstand, sys/boot/ficl and sys/boot/zfs, -mno-sse3 should alsodim2011-01-051-4/+1
| | | | be used for amd64, not just for i386.
* mdoc: drop redundant .Pp and .LP callsuqs2010-10-081-4/+0
| | | | They have no effect when coming in pairs, or before .Bl/.Bd
* Increase maximum network timeout from 20s to 120s. Given that an ETIMEDOUTemaste2010-09-281-1/+1
| | | | | return from sendrecv probably means a failure to boot we might as well be generous in the timeout period.
* Modify lib/libstand/nfs.c to use NFSv3 instead of NFSv2.rmacklem2010-09-021-2/+742
| | | | | | | | | | | | This allows the nfs_getrootfh() function to return the correct file handle size to pxe.c for pxeboot. It also results in NFSv2 no longer being used by default anywhere in FreeBSD. If built with OLD_NFSV2 defined, the old code that predated this patch will be built and NFSv2 will be used. Tested by: danny at cs.huji.ac.il MFC after: 2 weeks
* MFtbemd:imp2010-08-231-13/+13
| | | | | Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want to test of all the CPUs of a given family conform.
* Use type-specific inline function imax() instead of deprecated macro MAX().jkim2010-07-121-2/+1
| | | | Prodded by: bde
* Teach libstand what to do for powerpc64: the same thing as powerpc. Likenwhitehorn2010-07-101-6/+8
| | | | | amd64, libstand apps for powerpc64 systems are 32-bit, due to 32-bit Open Firmware implementations.
* Fix build by defining MAX() macro here.jkim2010-07-091-0/+1
|
* Sync. printf() of libstand(3) with sys/kern/subr_prf.c.jkim2010-07-081-12/+45
| | | | | | | | | | | | | | | | | | | | | | CVS r1.94 jhb: Cast the integer read as the first argument for %b to an unsigned integer so it's value is not sign extended when assigned to the uintmax_t variable used internally by printf. For example, if bit 31 is set in the cpuid feature word, then %b would print out the initial value as a 16 character hexadecimal value. Now it only prints out an 8 character value. CVS r1.109 njl: Add support for 'h' and 'hh' modifiers for printf(9). CVS r1.117 phk: If we ignore an unknown % sequence, we must stop interpreting the remaining % arguments because the varargs are now out of sync and there is a risk that we might for instance dereference an integer in a %s argument. SVN r209836 jkim: Implement optional 'precision' for numbers. Previously, it was parsed but ignored. Some third-party modules (e.g., APCICA) prefer this format over zero padding flag '0'.
* Use panic() (which the environment is required to provide to libstand) tojhb2010-03-301-4/+4
| | | | | | | | | | implement assert() instead of relying on a non-required exit(). The exit() invocation also did not match the semantics of the exit() routine that current boot environments happen to require. PR: kern/144749 Discussed with: bde MFC after: 1 week
* Remove two pieces of code (one disabled in revision 39665 and another deriveddelphij2010-03-182-16/+0
| | | | from the first one) that is not used for the last 12 years.
* fix a comment typoavg2010-01-181-1/+1
| | | | MFC after: 3 days
* Implement the fo_readdir method. This does not support longmarcel2010-01-091-1/+68
| | | | | | | file names. Obtained from: Juniper Networks, Inc. MFC after: 1 week
* Build lib/ with WARNS=6 by default.ed2010-01-021-0/+2
| | | | | | | | | Similar to libexec/, do the same with lib/. Make WARNS=6 the norm and lower it when needed. I'm setting WARNS?=0 for secure/. It seems secure/ includes the Makefile.inc provided by lib/. I'm not going to touch that directory. Most of the code there is contributed anyway.
* Fix a bug in gzipfs that prevented lseek() from working and add lseek()jhb2009-12-232-16/+67
| | | | | | | | support to bzip2fs. This fixes problems with loading compressed amd64 kernel modules containing debug symbols. Submitted by: David Naylor naylor.b.david (gmail) MFC after: 1 week
* IP_TTL is an IP socket option, not a TTL value. Use IPDEFTTLmarcel2009-11-051-1/+1
| | | | instead.
* Initialize f_rabuf in the raw device case. A subsequent close()brueffer2009-10-281-0/+1
| | | | | | | | later on would try to free it, leading to a crash. PR: 93998 Submitted by: neel MFC after: 1 week
* ANSIfy, whitespace and comment adjustments, to simplify comparing theseemaste2009-09-133-108/+65
| | | | files with NetBSD / OpenBSD versions.
* Fix minor issues in libstand.ed2009-05-312-2/+2
| | | | | | | - Don't call tftp_makereq() with too many arguments. - Don't forget to close one of the comments. Submitted by: Pawel Worach
* Use GCC's __SOFTFP__ to test whether we're being compiledmarcel2009-05-311-1/+1
| | | | | with softfloat or not. Now -msoft-float can be overridden more easily.
* Print the returned port number when RPC_DEBUG is defined.marcel2009-05-301-4/+11
| | | | This improves debugging.
* Use, in uncovered part, the END() macro in order to improve debugging.attilio2009-05-251-0/+2
| | | | | | | | | In this specific case, Valgrind won't get confused when analyzing such functions. Sponsored by: Sandvine Incorporated Tested by: emaste MFC: 3 days
* Increase the number of available file descriptors to 64. This fixes thedfr2009-05-241-1/+1
| | | | | reported zfsboot problems for systems where more than seven drives are part of ZFS pools.
* Fix an off-by-one buffer overflow in ngets().jhb2009-03-311-1/+1
| | | | | Submitted by: Bruce Can MFC after: 1 month
* Fix build when WITH_SSP is set explicitly.ru2009-02-211-1/+3
| | | | Submitted by: Jeremie Le Hen
* put a prefix on dhcp options to avoid clobbering, even by mistake,luigi2009-01-051-1/+1
| | | | | | existing environment variables. MFC after: 2 weeks
* This main goals of this project are:qingli2008-12-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. separating L2 tables (ARP, NDP) from the L3 routing tables 2. removing as much locking dependencies among these layers as possible to allow for some parallelism in the search operations 3. simplify the logic in the routing code, The most notable end result is the obsolescent of the route cloning (RTF_CLONING) concept, which translated into code reduction in both IPv4 ARP and IPv6 NDP related modules, and size reduction in struct rtentry{}. The change in design obsoletes the semantics of RTF_CLONING, RTF_WASCLONE and RTF_LLINFO routing flags. The userland applications such as "arp" and "ndp" have been modified to reflect those changes. The output from "netstat -r" shows only the routing entries. Quite a few developers have contributed to this project in the past: Glebius Smirnoff, Luigi Rizzo, Alessandro Cerri, and Andre Oppermann. And most recently: - Kip Macy revised the locking code completely, thus completing the last piece of the puzzle, Kip has also been conducting active functional testing - Sam Leffler has helped me improving/refactoring the code, and provided valuable reviews - Julian Elischer setup the perforce tree for me and has helped me maintaining that branch before the svn conversion
OpenPOWER on IntegriCloud