Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

SYSM68K(2)

НАЗВАНИЕ
sysm68k - машинно-зависимые функции

СИНТАКСИС


        #include <sys/trap.h>

        

        int sysm68k (cmd, arg1, arg2, arg3)

        int cmd, arg1, arg2, arg3;

ОПИСАНИЕ
Системный вызов sysm68k реализует машинно-зависимые действия. Конкретный характер действий определяется аргументом cmd. Количество и смысл остальных аргументов, в свою очередь, зависят от выполняемого действия. Ниже кратко описаны три из возможных действий. Дополнительные сведения можно получить из включаемых файлов <sys/trap.h>, <sys/swap.h> и <sys/conf.h>.

Команда S3BFPHW
Если значение cmd равно S3BFPHW, то проверяется, существует ли сопроцессор, поддерживающий арифметику вещественных чисел. Требуется один дополнительный аргумент - адрес целочисленной переменной. Если сопроцессор существует, то в результате выполнения системного вызова этой переменной присваивается 1, а если не существует, то 0.

Чтобы проверить наличие сопроцессора, необходимо сделать следующее:


             #include <sys/trap.h>

             

             int fpu_present;

             sysm68k (S3BFPHW, &fpu_present);

Системный вызов sysm68k при значении аргумента cmd, равном S3BFPHW, завершается неудачей, и наличие сопроцессора не определяется, если выполнено хотя бы одно из следующих условий:

[EFAULT]
Дополнительный аргумент не является корректным адресом целочисленной переменной (например, он оказался нечетным).
[EFAULT]
Дополнительный аргумент указывает за пределы отведенного процессу адресного пространства.

Команда S3BSWPI
Если значение cmd равно S3BSWPI, то может быть добавлена или удалена отдельная область подкачки. Можно также получить текущую информацию обо всех областях подкачки. В качестве дополнительного аргумента указывается адрес структуры типа swapint:


        struct swapint {

          char si_cmd;   /* Код команды (см. ниже). */

          char *si_buf;  /* В случае информационного запроса

                            [код SI_LIST] это поле должно указывать

                            на буфер размером не менее

                            sizeof (swpt_t) * MSFILES байт.

                            В остальных запросах это указатель на

                            маршрутное имя файла-устройства, на

                            котором находится или создается область

                            подкачки. */ 

          int  si_swplo; /* Номер первого блока области подкачки.

                            Используется только для  добавления

                            и удаления областей подкачки. */

          int  si_nblks; /* Размер области подкачки в блоках.

                            Используется только в запросе добавления

                            области подкачки. */

        }

        /* Возможные значения si_cmd (коды команд) */

        #define SI_LIST  0   /* Получить список текущих областей

                                подкачки. */

        #define SI_ADD   1   /* Добавить область подкачки. */

        #define SI_DEL   2   /* Удалить одну из текущих областей

                                подкачки. */

Описания, необходимые для использования данной разновидности системного вызова sysm68k, содержатся во включаемом файле <sys/swap.h>.

Добавление и удаление областей подкачки доступно только суперпользователям.

Операции с областями подкачки обычно выполняются следующим образом:


             #include <sys/trap.h>

             #include <sys/swap.h>

             

             /* Описание структуры для выполнения запросов */

             struct swapint swapbuf;

             

             /* Заполнение структуры */

              ...

             

             /* Собственно системный вызов */

             sysm68k (S3BSWPI, &swapbuf);

Системный вызов sysm68k при значении аргумента cmd, равном S3BSWPI, завершается неудачей, и операции с областями подкачки не выполняются, если выполнено хотя бы одно из следующих условий:

[EFAULT]
Дополнительный аргумент указывает за пределы отведенного процессу адресного пространства.
[EFAULT]
Поле si_buf указывает за пределы отведенного процессу адресного пространства.
[ENOTBLK]
Заданная область подкачки не является специальным блочным файлом.
[EEXIST]
Заданная область подкачки уже существует.
[ENOSPC]
Добавить область подкачки нельзя, так как их количество уже максимально.
[ENOMEM]
Попытка удалить последнюю область подкачки.
[EINVAL]
Неправильные аргументы.
[ENOMEM]
Если удалить область подкачки, то не хватит места для подкачиваемых страниц.

Команда STIME
Если значение cmd равно STIME, то устанавливаются системные дата и время. Единственный дополнительный аргумент типа long должен содержать время, прошедшее с нуля часов 1 января 1970 года (по Гринвичу), измеренное в секундах. Эту команду может выполнить только суперпользователь.

СМ. ТАКЖЕ
date(1) в Справочнике пользователя. swap(1M) в Справочнике администратора.

ДИАГНОСТИКА
Для описанных вариантов системного вызова sysm68k при успешном завершении результат равен 0; в противном случае возвращается -1, а переменной errno присваивается код ошибки.

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...