diff options
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/alpha/sysdep.S | 8 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/start.S | 103 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/netinet/in.h | 98 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ustatbits.h | 2 |
5 files changed, 18 insertions, 196 deletions
diff --git a/sysdeps/unix/alpha/sysdep.S b/sysdeps/unix/alpha/sysdep.S index 6540b80af6..2d05305ce0 100644 --- a/sysdeps/unix/alpha/sysdep.S +++ b/sysdeps/unix/alpha/sysdep.S @@ -20,11 +20,15 @@ Cambridge, MA 02139, USA. */ #define _ERRNO_H #include <errnos.h> - .comm errno, 4 + .section .bss + .globl errno +errno: .space 4 #ifdef __ELF__ - .type errno, @object + .type errno, @object + .size errno, 4 #endif + .text LEAF(__syscall_error, 0) ldgp gp, 0(t12) .prologue 1 diff --git a/sysdeps/unix/sysv/linux/alpha/start.S b/sysdeps/unix/sysv/linux/alpha/start.S deleted file mode 100644 index bffa913538..0000000000 --- a/sysdeps/unix/sysv/linux/alpha/start.S +++ /dev/null @@ -1,103 +0,0 @@ -/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@tamu.edu> - -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -#include <sysdep.h> - - .text - .globl __start - .align 3 - .ent __start, 0 -__start: - .frame fp, 0, zero - mov zero, fp - br gp, 1f -1: ldgp gp, 0(gp) - .prologue 1 - - /* Save v0. When starting a binary via the dynamic linker, s0 - contains the address of the shared library termination function, - which we will register below with atexit() to be called by exit(). - If we are statically linked, this will be NULL. */ - mov v0, s0 - - /* Do essential libc initialization (sp points to argc, argv, and envp) */ - jsr ra, __libc_init_first - ldgp gp, 0(ra) - - /* Now that we have the proper stack frame, register library termination - function, if there is any: */ - - beq s0, 1f - mov s0, a0 - jsr ra, atexit - ldgp gp, 0(ra) -1: - - /* Extract the arguments and environment as encoded on the stack. */ - ldl a0, 0(sp) /* get argc */ - lda a1, 8(sp) /* get argv */ - s8addq a0, a1, a2 /* get envp */ - addq a2, 8, a2 - stq a2, _environ - - mov a0, s0 /* tuck them away */ - mov a1, s1 - mov a2, s2 - -#ifdef HAVE_INITFINI - /* Call _init, the entry point to our own .init section. */ - jsr ra, _init - ldgp gp, 0(ra) - - /* Register our .fini section with atexit. */ - lda a0, _fini - jsr ra, atexit - ldgp gp, 0(ra) -#else - /* initialize constructors: */ - jsr ra, __main - ldgp gp, 0(ra) -#endif - mov s0, a0 - mov s1, a1 - mov s2, a2 - - /* Call the user's main and exit with its return value. */ - jsr ra, main - ldgp gp, 0(ra) - - mov v0, a0 - jsr ra, exit - - /* Die very horribly if exit returns. Call_pal hlt is callable from - kernel mode only; this will result in an illegal instruction trap. */ - call_pal 0 -END(__start) - -/* Define a symbol for the first piece of initialized data. */ - .data - .globl __data_start -__data_start: - .long 0 - -#ifdef __ELF__ - .size __data_start, 4 - .type __data_start, @object -#endif - -weak_alias(__data_start, data_start) diff --git a/sysdeps/unix/sysv/linux/netinet/in.h b/sysdeps/unix/sysv/linux/netinet/in.h index ebe6b4cf58..a0b8714fd6 100644 --- a/sysdeps/unix/sysv/linux/netinet/in.h +++ b/sysdeps/unix/sysv/linux/netinet/in.h @@ -21,23 +21,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <features.h> #include <sys/socket.h> - - -/* Standard well-defined IP protocols. */ -enum - { - IPPROTO_IP = 0, /* Dummy protocol for TCP. */ - IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */ - IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */ - IPPROTO_TCP = 6, /* Transmission Control Protocol. */ - IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */ - IPPROTO_PUP = 12, /* PUP protocol. */ - IPPROTO_UDP = 17, /* User Datagram Protocol. */ - IPPROTO_IDP = 22, /* XNS IDP protocol. */ - - IPPROTO_RAW = 255, /* Raw IP packets. */ - IPPROTO_MAX - }; +#include <linux/in.h> /* Standard well-known ports. */ enum @@ -85,75 +69,9 @@ enum #define IMPLINK_LOWEXPER 156 #define IMPLINK_HIGHEXPER 158 - -/* Internet address. */ -struct in_addr - { - unsigned int s_addr; - }; - - -/* Definitions of the bits in an Internet address integer. - - On subnets, host and network parts are found according to - the subnet mask, not these masks. */ - -#define IN_CLASSA(a) ((((unsigned) (a)) & 0x80000000) == 0) -#define IN_CLASSA_NET 0xff000000 -#define IN_CLASSA_NSHIFT 24 -#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET) -#define IN_CLASSA_MAX 128 - -#define IN_CLASSB(a) ((((unsigned) (a)) & 0xc0000000) == 0x80000000) -#define IN_CLASSB_NET 0xffff0000 -#define IN_CLASSB_NSHIFT 16 -#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET) -#define IN_CLASSB_MAX 65536 - -#define IN_CLASSC(a) ((((unsigned) (a)) & 0xc0000000) == 0xc0000000) -#define IN_CLASSC_NET 0xffffff00 -#define IN_CLASSC_NSHIFT 8 -#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET) - -#define IN_CLASSD(a) ((((unsigned) (a)) & 0xf0000000) == 0xe0000000) -#define IN_MULTICAST(a) IN_CLASSD(a) - -#define IN_EXPERIMENTAL(a) ((((unsigned) (a)) & 0xe0000000) == 0xe0000000) -#define IN_BADCLASS(a) ((((unsigned) (a)) & 0xf0000000) == 0xf0000000) - -/* Address to accept any incoming messages. */ -#define INADDR_ANY ((unsigned) 0x00000000) -/* Address to send to all hosts. */ -#define INADDR_BROADCAST ((unsigned) 0xffffffff) -/* Address indicating an error return. */ -#define INADDR_NONE 0xffffffff - -/* Network number for local host loopback. */ -#define IN_LOOPBACKNET 127 -/* Address to loopback in software to local host. */ -#ifndef INADDR_LOOPBACK -#define INADDR_LOOPBACK 0x7f000001 /* Internet address 127.0.0.1. */ -#endif - - /* Get the definition of the macro to define the common sockaddr members. */ #include <sockaddrcom.h> - -/* Structure describing an Internet socket address. */ -struct sockaddr_in - { - __SOCKADDR_COMMON (sin_); - unsigned short int sin_port; /* Port number. */ - struct in_addr sin_addr; /* Internet address. */ - - /* Pad to size of `struct sockaddr'. */ - unsigned char sin_zero[sizeof(struct sockaddr) - - __SOCKADDR_COMMON_SIZE - - sizeof(unsigned short int) - - sizeof(struct in_addr)]; - }; - /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS. The `ip_dst' field is used for the first-hop gateway when using a source route (this gets put into the header proper). */ @@ -163,13 +81,6 @@ struct ip_opts char ip_opts[40]; /* Actually variable in size. */ }; -/* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */ -struct ip_mreq -{ - struct in_addr imr_multiaddr; /* IP multicast address of group */ - struct in_addr imr_interface; /* local IP address of interface */ -}; - /* Functions to convert between host and network byte order. */ extern unsigned long int ntohl __P ((unsigned long int)); @@ -188,4 +99,11 @@ extern unsigned short int htons __P ((unsigned short int)); #define htons(x) (x) #endif +__BEGIN_DECLS + +/* Bind socket FD to a privileged IP address SIN. */ +extern int bindresvport __P((int __fd, struct sockaddr_in * __sin)); + +__END_DECLS + #endif /* netinet/in.h */ diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index da10170bf5..d9dd3d100a 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -18,6 +18,7 @@ init_module EXTRA init_module 5 init_module ioperm - ioperm 3 ioperm iopl - iopl 1 iopl ipc msgget ipc 5 __ipc +klogctl EXTRA syslog 3 klogctl llseek EXTRA _llseek 5 llseek mlock - mlock 2 __mlock mlock mlockall - mlockall 1 __mlockall mlockall @@ -49,7 +50,7 @@ sigprocmask - sigprocmask 3 __sigprocmask sigprocmask s_sysctl sysctl _sysctl 1 __syscall__sysctl sysinfo EXTRA sysinfo 1 sysinfo swapon - swapon 2 swapon -klogctl EXTRA syslog 3 klogctl umount EXTRA umount 1 __umount umount uselib EXTRA uselib 1 uselib +ustat - ustat 2 __ustat ustat wait4 - wait4 4 __wait4 wait4 diff --git a/sysdeps/unix/sysv/linux/ustatbits.h b/sysdeps/unix/sysv/linux/ustatbits.h new file mode 100644 index 0000000000..96580031c7 --- /dev/null +++ b/sysdeps/unix/sysv/linux/ustatbits.h @@ -0,0 +1,2 @@ +/* struct ustat is currently in <linux/types.h>. Good or bad? */ +#include <linux/types.h> |