Add Posix functions for porting compatibility. Fix compliance issues with ISO/IEC 9899:199409 New Functions: setenv(), fparseln(), GetFileNameFromPath(), rename(), realpath(), setprogname(), getprogname(), strlcat(), strlcpy(), strsep(), setitimer(), getitimer(), timegm(), getopt(), basename(), mkstemp(), ffs(), vsnprintf(), snprintf(), getpass(), usleep(), select(), writev(), strcasecmp(), getcwd(), chdir(), tcgetpgrp(), getpgrp(), gettimeofday(), bcopy(), git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12061 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 1990,1991 Regents of The University of Michigan.
 | 
						|
 * All Rights Reserved.
 | 
						|
 *
 | 
						|
 * Permission to use, copy, modify, and distribute this software and
 | 
						|
 * its documentation for any purpose and without fee is hereby granted,
 | 
						|
 * provided that the above copyright notice appears in all copies and
 | 
						|
 * that both that copyright notice and this permission notice appear
 | 
						|
 * in supporting documentation, and that the name of The University
 | 
						|
 * of Michigan not be used in advertising or publicity pertaining to
 | 
						|
 * distribution of the software without specific, written prior
 | 
						|
 * permission. This software is supplied as is without expressed or
 | 
						|
 * implied warranties of any kind.
 | 
						|
 *
 | 
						|
 *	Research Systems Unix Group
 | 
						|
 *	The University of Michigan
 | 
						|
 *	c/o Mike Clark
 | 
						|
 *	535 W. William Street
 | 
						|
 *	Ann Arbor, Michigan
 | 
						|
 *	+1-313-763-0525
 | 
						|
 *	netatalk@itd.umich.edu
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __AT_HEADER__
 | 
						|
#define __AT_HEADER__
 | 
						|
/*
 | 
						|
 * Supported protocols
 | 
						|
 */
 | 
						|
#define ATPROTO_DDP	0
 | 
						|
#define ATPROTO_AARP	254
 | 
						|
 | 
						|
/*
 | 
						|
 * Ethernet types, for DIX.
 | 
						|
 * These should really be in some global header file, but we can't
 | 
						|
 * count on them being there, and it's annoying to patch system files.
 | 
						|
 */
 | 
						|
#define ETHERTYPE_AT	0x809B		/* AppleTalk protocol */
 | 
						|
#define ETHERTYPE_AARP	0x80F3		/* AppleTalk ARP */
 | 
						|
 | 
						|
#define DDP_MAXSZ	587
 | 
						|
 | 
						|
/*
 | 
						|
 * If ATPORT_FIRST <= Port < ATPORT_RESERVED,
 | 
						|
 * Port was created by a privileged process.
 | 
						|
 * If ATPORT_RESERVED <= Port < ATPORT_LAST,
 | 
						|
 * Port was not necessarily created by a
 | 
						|
 * privileged process.
 | 
						|
 */
 | 
						|
#define ATPORT_FIRST	1
 | 
						|
#define ATPORT_RESERVED	128
 | 
						|
#define ATPORT_LAST	255
 | 
						|
 | 
						|
/*
 | 
						|
 * AppleTalk address.
 | 
						|
 */
 | 
						|
struct at_addr {
 | 
						|
    u_short	s_net;
 | 
						|
    u_char	s_node;
 | 
						|
};
 | 
						|
 | 
						|
#define ATADDR_ANYNET	(u_short)0x0000
 | 
						|
#define ATADDR_ANYNODE	(u_char)0x00
 | 
						|
#define ATADDR_ANYPORT	(u_char)0x00
 | 
						|
#define ATADDR_BCAST	(u_char)0xff		/* There is no BCAST for NET */
 | 
						|
 | 
						|
struct netrange {
 | 
						|
    u_char		nr_phase;
 | 
						|
    u_short		nr_firstnet;
 | 
						|
    u_short		nr_lastnet;
 | 
						|
};
 | 
						|
 | 
						|
/*
 | 
						|
 * Socket address, AppleTalk style.  We keep magic information in the 
 | 
						|
 * zero bytes.  There are three types, NONE, CONFIG which has the phase
 | 
						|
 * and a net range, and IFACE which has the network address of an
 | 
						|
 * interface.  IFACE may be filled in by the client, and is filled in
 | 
						|
 * by the kernel.
 | 
						|
 */
 | 
						|
struct sockaddr_at {
 | 
						|
    u_char		sat_len;
 | 
						|
    u_char		sat_family;
 | 
						|
    u_char		sat_port;
 | 
						|
    struct at_addr	sat_addr;
 | 
						|
    union {
 | 
						|
	struct netrange r_netrange;
 | 
						|
    	char		r_zero[ 8 ];	/* Hide a struct netrange in here */
 | 
						|
    } sat_range;
 | 
						|
};
 | 
						|
 | 
						|
#define sat_zero sat_range.r_zero
 | 
						|
 | 
						|
#endif /* !__AT_HEADER__ */
 |