Annotation of coherent/f/usr/man/KERNEL/patch, revision 1.1

1.1     ! root        1: ppaattcchh -- Command
        !             2: 
        !             3: /ccoonnff/ppaattcchh [-kkKKppvv] _i_m_a_g_e _s_y_m_b_o_l=_v_a_l_u_e ...
        !             4: 
        !             5: The command ppaattcchh  alters the value of datum _s_y_m_b_o_l  to _v_a_l_u_e in executable
        !             6: _i_m_a_g_e.  In  general,  you should  use  ppaattcchh  to  alter configuration  data
        !             7: (constants) in  programs, in  device drivers,  and in the  COHERENT kernel.
        !             8: For ppaattcchh to work with a  symbolic constant, _i_m_a_g_e must have a symbol table
        !             9: that includes  information about  _s_y_m_b_o_l. Therefore, executables  that have
        !            10: been processed by the command ssttrriipp cannot be ppaattcchhed.
        !            11: 
        !            12: ppaattcchh recognizes the following _o_p_t_i_o_n_s:
        !            13: 
        !            14: -kk   Patch  the kernel  memory of  the running  COHERENT system  via device
        !            15:      /ddeevv/kkmmeemm, as well as the _i_m_a_g_e.
        !            16: 
        !            17: -KK   Patch only  the kernel's data memory of the  running system via device
        !            18:      /ddeevv/kkmmeemm.
        !            19: 
        !            20: -pp   Display (peek  at) the current values of  the specified variables, but
        !            21:      do not change them.
        !            22: 
        !            23: -vv   Verbose.   Display the  values of the  specified variables  before and
        !            24:      after patching.
        !            25: 
        !            26: Only the superuser rroooott can access kernel memory from the ppaattcchh command.
        !            27: 
        !            28: Both _s_y_m_b_o_l and _v_a_l_u_e may consist of numeric constants or a symbol from the
        !            29: symbol table of _i_m_a_g_e.
        !            30: 
        !            31: Please  note  that the  COHERENT  286 kernel  references  variables with  a
        !            32: trailing  underscore character;  for  example, aattppaarrmm_.   The COHERENT  386
        !            33: kernel, however,  does _n_o_t use a trailing  underscore; for example, aattppaarrmm.
        !            34: The following descriptions apply to both COHERENT 286 and COHERENT 386, but
        !            35: the notation will be in the COHERENT-386 form.
        !            36: 
        !            37: _s_y_m_b_o_l and  _v_a_l_u_e expressions may  include an optional  numeric offset.  In
        !            38: addition,  the _v_a_l_u_e  field  may optionally  be composed  of the  construct
        !            39: mmaakkeeddeevv(_m_a_j_o_r,_m_i_n_o_r), where _m_a_j_o_r and _m_i_n_o_r are the ``major'' and ``minor''
        !            40: device numbers, respectively, resulting in a ddeevv_tt-sized device type.
        !            41: 
        !            42: Numeric constants default to decimal, but may be specifyed with a leading 00
        !            43: prefix to specify  an octal number or a 00xx  prefix to specify a hexadecimal
        !            44: number.
        !            45: 
        !            46: The size  of the altered  _s_y_m_b_o_l field is, by  default, ssiizzeeooff(iinntt).  ppaattcchh
        !            47: recognizes the following explicit size overrides:
        !            48: 
        !            49: :cc The size of the altered field is ssiizzeeooff(cchhaarr).
        !            50: 
        !            51: :ii The size of the altered field is ssiizzeeooff(iinntt).
        !            52: 
        !            53: :ll The size of the altered field is ssiizzeeooff(lloonngg).
        !            54: 
        !            55: :ss The size of the altered field is ssiizzeeooff(sshhoorrtt).
        !            56: 
        !            57: _E_x_a_m_p_l_e_s
        !            58: The following  example patches the  value of kernel variable  KKBBBBOOOOTT in the
        !            59: nnkkbb  keyboard device  driver to  disallow rebooting of  the system  via the
        !            60: traditional  <ccttrrll><aalltt><ddeell> key  sequence.  See  Lexicon article  nnkkbb for
        !            61: details.  Note that this command  changes /ccoohheerreenntt on the boot device, not
        !            62: the copy of /ccoohheerreenntt that is now running in memory.
        !            63: 
        !            64:     /conf/patch /coherent KBBOOT=0
        !            65: 
        !            66: The second  example patches the value of character  variable mmyyvvaarr in user-
        !            67: supplied program mmyypprroogg to hexadecimal value 12:
        !            68: 
        !            69:     /conf/patch myprog myvar=0x12:c
        !            70: 
        !            71: The final  example modifies the  default ``root'' and  ``pipe'' devices for
        !            72: COHERENT-386 kernel /tteessttccoohh to be AT/IDE hard-disk partition /ddeevv/aatt00bb.
        !            73: 
        !            74:     /conf/patch /testcoh 'rootdev=makedev(11,1)' 'pipedev=makedev(11,1)'
        !            75: 
        !            76: Note that  in this last example,  the arguments to ppaattcchh  must be quoted to
        !            77: avoid interpretation by the shell.
        !            78: 
        !            79: _S_e_e _A_l_s_o
        !            80: ccoommmmaannddss, ddeevviiccee ddrriivveerrss
        !            81: 
        !            82: _N_o_t_e_s
        !            83: No  spaces  can  appear  around  the  equal  sign  in  the  ssyymmbbooll=_c_o_n_s_t_a_n_t
        !            84: construct.
        !            85: 
        !            86: Using ppaattcchh to modify the kernal data area of a running system is extremely
        !            87: dangerous.   It  should  only be  done  by  experienced  writers of  device
        !            88: drivers.  _C_a_v_e_a_t _u_t_i_l_i_t_o_r!

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.