7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 #pragma ident "%Z%%M% %I% %E% SMI"
28
29 #include <sys/acctctl.h>
30 #include <sys/cmn_err.h>
31 #include <sys/cred.h>
32 #include <sys/errno.h>
33 #include <sys/exacct.h>
34 #include <sys/modctl.h>
35 #include <sys/procset.h>
36 #include <sys/sysmacros.h>
37 #include <sys/systm.h>
38 #include <sys/task.h>
39 #include <sys/types.h>
40 #include <sys/user.h>
41 #include <sys/policy.h>
42
43 /*
44 * getacct(2), putacct(2), and wracct(2) system calls
45 *
46 * The extended accounting subsystem provides three root-privileged system
47 * calls for interacting with the actual resource data associated with each
48 * task or process. getacct() copies a packed exacct record reflecting the
363 };
364
365 #ifdef _SYSCALL32_IMPL
366
367 static struct sysent exacctsys_sysent32 = {
368 6,
369 SE_NOUNLOAD | SE_ARGC | SE_32RVAL1,
370 (int (*)())exacct
371 };
372
373 static struct modlsys modlsys32 = {
374 &mod_syscallops32,
375 "32-bit extended accounting facility",
376 &exacctsys_sysent32
377 };
378
379 #endif
380
381 static struct modlinkage modlinkage = {
382 MODREV_1,
383 &modlsys,
384 #ifdef _SYSCALL32_IMPL
385 &modlsys32,
386 #endif
387 NULL
388 };
389
390 int
391 _init(void)
392 {
393 return (mod_install(&modlinkage));
394 }
395
396 int
397 _fini(void)
398 {
399 return (mod_remove(&modlinkage));
400 }
401
402 int
403 _info(struct modinfo *mip)
404 {
405 return (mod_info(&modlinkage, mip));
406 }
|
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 #include <sys/acctctl.h>
28 #include <sys/cmn_err.h>
29 #include <sys/cred.h>
30 #include <sys/errno.h>
31 #include <sys/exacct.h>
32 #include <sys/modctl.h>
33 #include <sys/procset.h>
34 #include <sys/sysmacros.h>
35 #include <sys/systm.h>
36 #include <sys/task.h>
37 #include <sys/types.h>
38 #include <sys/user.h>
39 #include <sys/policy.h>
40
41 /*
42 * getacct(2), putacct(2), and wracct(2) system calls
43 *
44 * The extended accounting subsystem provides three root-privileged system
45 * calls for interacting with the actual resource data associated with each
46 * task or process. getacct() copies a packed exacct record reflecting the
361 };
362
363 #ifdef _SYSCALL32_IMPL
364
365 static struct sysent exacctsys_sysent32 = {
366 6,
367 SE_NOUNLOAD | SE_ARGC | SE_32RVAL1,
368 (int (*)())exacct
369 };
370
371 static struct modlsys modlsys32 = {
372 &mod_syscallops32,
373 "32-bit extended accounting facility",
374 &exacctsys_sysent32
375 };
376
377 #endif
378
379 static struct modlinkage modlinkage = {
380 MODREV_1,
381 { &modlsys,
382 #ifdef _SYSCALL32_IMPL
383 &modlsys32,
384 #endif
385 NULL
386 }
387 };
388
389 int
390 _init(void)
391 {
392 return (mod_install(&modlinkage));
393 }
394
395 int
396 _fini(void)
397 {
398 return (mod_remove(&modlinkage));
399 }
400
401 int
402 _info(struct modinfo *mip)
403 {
404 return (mod_info(&modlinkage, mip));
405 }
|