Unix-system-calls-kexec-load

提供:Dev Guides
移動先:案内検索

[top]#

|http://www.google.com/[Google] | a|

Web This Site
  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

[cols=",,,,,,,",]

| |  Home   | |  References   | |  Discussion Forums   | |  About TP  

[width="100%",cols="100%",]

a| == kexec_load()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

kexec_load-新しいカーネルイメージをメモリにロードします

概要

#include <syscall.h> #include <kexec.h> long kexec_load(unsigned long entry, unsigned long nr_segments,                  struct kexec_segment* flags);

説明

*kexec_load* は、現在のアドレス空間から新しいカーネルをロードします。 このシステムコールは、rootのみが使用できます。

_entry_は、新しくロードされた実行可能イメージのエントリポイントへのポインタです。 これは、カーネルがジャンプして新しくロードされたイメージの命令の実行を開始するメモリの場所です。

_nr_segments_は、 kexec_load に渡されるセグメントの数を示します。 値は_KEXEC_SEGMENT_MAX_より大きくすることはできません。

_segments_は、 kexec_segment 要素の配列の最初の要素へのポインタを示します。 kexec_segment 要素には、メモリにロードされるセグメントの詳細が含まれます。

_flags_フラグの最上位16ビットは、アーキテクチャ情報の通信に使用されます(* KEXEC_ARCH _' ''''')。 さまざまなアーキテクチャの値は、ELF仕様で定義されているものと同じです。 下位16ビットはその他の情報用に予約されています。 現在、1ビットのみが使用されており、残りの15ビットは将来の使用のために予約されています。 最下位ビット( KEXEC_ON_CRASH )を設定して、ロード中のメモリメモリイメージが通常のブートではなくシステムクラッシュ時に実行されることをカーネルに通知できます。 通常のブートでは、このビットはクリアされます。

返り値

成功すると、ゼロが返されます。 エラーの場合、ゼロ以外の値が返され、_errno_が適切に設定されます。

エラー

*EPERM* 呼び出しプロセスに十分な権限がありません(rootではありません)。
*EINVAL* _flags_引数に無効なフラグの組み合わせが含まれているか、_nr_segments_が *KEXEC_SEGMENT_MAX* より大きい。
*ENOMEM* カーネルイメージを保存するのに十分なメモリがありません。
*EBUSY* に書き込むべきメモリ位置は現在利用できません。

可用性

このsyscallは、カーネル2.6.1以降にのみ実装されています。 .finddevguides.com/unix_system_calls/index [next] http://www.finddevguides.com/cgi-bin/printversion.cgi?tutorial= unix_system_calls&file = kexec_load [Printer Friendly]

広告

|  

[cols="^",]

|Advertisements