1*7c478bd9Sstevel@tonic-gate#!/bin/sh 2*7c478bd9Sstevel@tonic-gate# 3*7c478bd9Sstevel@tonic-gate# CDDL HEADER START 4*7c478bd9Sstevel@tonic-gate# 5*7c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the 6*7c478bd9Sstevel@tonic-gate# Common Development and Distribution License, Version 1.0 only 7*7c478bd9Sstevel@tonic-gate# (the "License"). You may not use this file except in compliance 8*7c478bd9Sstevel@tonic-gate# with the License. 9*7c478bd9Sstevel@tonic-gate# 10*7c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11*7c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing. 12*7c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions 13*7c478bd9Sstevel@tonic-gate# and limitations under the License. 14*7c478bd9Sstevel@tonic-gate# 15*7c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each 16*7c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 17*7c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the 18*7c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying 19*7c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner] 20*7c478bd9Sstevel@tonic-gate# 21*7c478bd9Sstevel@tonic-gate# CDDL HEADER END 22*7c478bd9Sstevel@tonic-gate# 23*7c478bd9Sstevel@tonic-gate# 24*7c478bd9Sstevel@tonic-gate# Copyright 1993-2003 Sun Microsystems, Inc. All rights reserved. 25*7c478bd9Sstevel@tonic-gate# Use is subject to license terms. 26*7c478bd9Sstevel@tonic-gate# 27*7c478bd9Sstevel@tonic-gate#pragma ident "%Z%%M% %I% %E% SMI" 28*7c478bd9Sstevel@tonic-gate# 29*7c478bd9Sstevel@tonic-gate# mksysent - generate the sysent table from the list of system calls 30*7c478bd9Sstevel@tonic-gate# 31*7c478bd9Sstevel@tonic-gatenawk ' 32*7c478bd9Sstevel@tonic-gateBEGIN { 33*7c478bd9Sstevel@tonic-gate print "#include <sys/asm_linkage.h>" 34*7c478bd9Sstevel@tonic-gate print "#include <sys/syscall.h>" 35*7c478bd9Sstevel@tonic-gate print "" 36*7c478bd9Sstevel@tonic-gate print "! This file is automatically generated from syscalls.list." 37*7c478bd9Sstevel@tonic-gate print "! Do not edit by hand or your changes will be lost." 38*7c478bd9Sstevel@tonic-gate print "! See mksysent and syscalls.list for details." 39*7c478bd9Sstevel@tonic-gate print "" 40*7c478bd9Sstevel@tonic-gate print " .section \".text\"" 41*7c478bd9Sstevel@tonic-gate print " .align 4" 42*7c478bd9Sstevel@tonic-gate print "sysent:" 43*7c478bd9Sstevel@tonic-gate} 44*7c478bd9Sstevel@tonic-gate/^#/ { next; } # ignore comment lines 45*7c478bd9Sstevel@tonic-gate{ 46*7c478bd9Sstevel@tonic-gate f = $1; 47*7c478bd9Sstevel@tonic-gate if ($2 == "TRAP") { 48*7c478bd9Sstevel@tonic-gate printf "! %s\n", f; 49*7c478bd9Sstevel@tonic-gate printf "\trestore\t%%g0, SYS_%s, %%g1\n", f; 50*7c478bd9Sstevel@tonic-gate printf "\tta\t8\n"; 51*7c478bd9Sstevel@tonic-gate printf "\tjmp\t%%g6\n"; 52*7c478bd9Sstevel@tonic-gate printf "\tnop\n"; 53*7c478bd9Sstevel@tonic-gate } else if ($2 == "SIMPLE") { 54*7c478bd9Sstevel@tonic-gate printf "! %s\n", f; 55*7c478bd9Sstevel@tonic-gate printf "\t.global\t%s\n", f; 56*7c478bd9Sstevel@tonic-gate printf "\tcall\t%s\n", f; 57*7c478bd9Sstevel@tonic-gate printf "\tnop\n"; 58*7c478bd9Sstevel@tonic-gate printf "\tb,a\ttrap0rtn\n"; 59*7c478bd9Sstevel@tonic-gate printf "\tnop\n"; 60*7c478bd9Sstevel@tonic-gate } else { 61*7c478bd9Sstevel@tonic-gate printf "! %s\n", f; 62*7c478bd9Sstevel@tonic-gate printf "\tb,a\tnosys\n"; 63*7c478bd9Sstevel@tonic-gate printf "\tnop\n"; 64*7c478bd9Sstevel@tonic-gate printf "\tnop\n"; 65*7c478bd9Sstevel@tonic-gate printf "\tnop\n"; 66*7c478bd9Sstevel@tonic-gate } 67*7c478bd9Sstevel@tonic-gate} 68*7c478bd9Sstevel@tonic-gate' <syscalls.list 69