home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / kernex32.zip / mwdd_src.zip / 32bits / ext2-os2 / doc / mwdd32 / utils.im < prev   
Text File  |  1997-03-16  |  10KB  |  344 lines

  1. .*
  2. .* $Header: d:\\32bits\\ext2-os2\\doc\\mwdd32\\rcs\\utils.im,v 1.4 1997/03/15 17:13:14 Willm Exp $
  3. .*
  4.  
  5. .* 32 bits OS/2 device driver and IFS support. Provides 32 bits kernel 
  6. .* services (DevHelp) and utility functions to 32 bits OS/2 ring 0 code 
  7. .* (device drivers and installable file system drivers).
  8. .* Copyright (C) 1995, 1996, 1997  Matthieu WILLM (willm@ibm.net)
  9. .*
  10. .* This program is free software; you can redistribute it and/or modify
  11. .* it under the terms of the GNU General Public License as published by
  12. .* the Free Software Foundation; either version 2 of the License, or
  13. .* (at your option) any later version.
  14. .*
  15. .* This program is distributed in the hope that it will be useful,
  16. .* but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. .* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. .* GNU General Public License for more details.
  19. .*
  20. .* You should have received a copy of the GNU General Public License
  21. .* along with this program; if not, write to the Free Software
  22. .* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  
  24.  
  25.  
  26. .nameit symbol=titre_400 text='Kernel utility functions'
  27. .nameit symbol=titre_401 text='vsprintf'
  28. .nameit symbol=titre_402 text='strtoul'
  29. .nameit symbol=titre_403 text='atol'
  30. .nameit symbol=titre_404 text='strupr'
  31. .nameit symbol=titre_405 text='strpbrk'
  32. .nameit symbol=titre_406 text='fnmatch'
  33. .nameit symbol=titre_407 text='strtol'
  34. .nameit symbol=titre_408 text='sec32_attach_ses'
  35.  
  36. :h1.&titre_400.
  37.  
  38. This chapter describes the 32 bits kernel utility functions provided by mwdd32.sys. These functions include some ansi C and some POSIX useful functions, callable from ring 0 OS/2 kernel code.
  39. To use them from C code, you must include the following files &colon.
  40. :ul compact.
  41. :li.os2/types.h
  42. :li.os2/devhlp32.h
  43. :eul.
  44.  
  45. :p.
  46. This document is only intented to describe the OS/2 kernel version of these calls,
  47. it does NOT replace an ANSI C or POSIX programming manual.
  48.  
  49. :nt.
  50. :ul compact.
  51. :li.Unless otherwise specified, ALL pointers are 32 bits FLAT pointers.
  52. :li.Unless ohterwise specified, ALL utility functions follow the 32 bits SYSTEM calling convention (parameters pushed from right to left, caller cleans up the stack, EBP ESI EDI EBX and all segment registers are preserved, other are not)
  53. :eul.
  54. :ent.
  55.  
  56. :p.
  57. List of utility functions &colon.
  58. :ul compact.
  59. :li.:link reftype=hd refid=401.&titre_401.:elink.
  60. :li.:link reftype=hd refid=402.&titre_402.:elink.
  61. :li.:link reftype=hd refid=403.&titre_403.:elink.
  62. :li.:link reftype=hd refid=404.&titre_404.:elink.
  63. :li.:link reftype=hd refid=405.&titre_405.:elink.
  64. :li.:link reftype=hd refid=406.&titre_406.:elink.
  65. :li.:link reftype=hd refid=407.&titre_407.:elink.
  66. :li.:link reftype=hd refid=408.&titre_408.:elink.
  67. :eul.
  68.  
  69. .*******************************************************************************
  70. .*** vsprintf                                                                ***
  71. .*******************************************************************************
  72.  
  73. :h2 id=401.&titre_401.
  74.  
  75. :p.
  76. Issues a formatted output to a buffer.
  77.  
  78. :xmp.
  79. int DH32ENTRY vsprintf (
  80.                         char *buffer,
  81.                         const char *format,
  82.                         va_list arg_ptr
  83.                        );
  84. :exmp.
  85.  
  86.  
  87. :p.Parameters description &colon.
  88.  
  89. :table cols='20 10 45' frame=box rules=both.
  90. :row.
  91. :c.Parameter type
  92. :c.Input Output
  93. :c.Description
  94. :row.
  95. :c.char *buffer
  96. :c.in/out
  97. :c.buffer in which will be put the formatted string.
  98. :row.
  99. :c.const char *format
  100. :c.input
  101. :c.Format string (cf an ANSI C programming manual for a description of its contents)
  102. :row.
  103. :c.va_list arg_ptr
  104. :c.input
  105. :c.Pointer to a variable size list of arguments
  106. :etable.
  107.  
  108.  
  109. .*******************************************************************************
  110. .*** strtoul                                                                 ***
  111. .*******************************************************************************
  112.  
  113. :h2 id=402.&titre_402.
  114.  
  115. :p.
  116. Converts a character string to an unsigned long integer.
  117.  
  118. :xmp.
  119. unsigned long DH32ENTRY strtoul (
  120.                                  const char *string, 
  121.                                  char **end_ptr, 
  122.                                  int radix
  123.                                 );
  124. :exmp.
  125.  
  126.  
  127. :p.Parameters description &colon.
  128.  
  129. :table cols='20 10 45' frame=box rules=both.
  130. :row.
  131. :c.Parameter type
  132. :c.Input Output
  133. :c.Description
  134. :row.
  135. :c.const char *string
  136. :c.input
  137. :c.String to be converted
  138. :row.
  139. :c.char **end_ptr
  140. :c.in/out
  141. :c.Filled with the pointer to the first character not converted
  142. :row.
  143. :c.int radix
  144. :c.input 
  145. :c.Base in which the number should be interpreted (auto (0), 8, 10, 16)
  146. :etable.
  147.  
  148.  
  149. .*******************************************************************************
  150. .*** atol                                                                    ***
  151. .*******************************************************************************
  152.  
  153. :h2 id=403.&titre_403.
  154.  
  155. :p.
  156. Converts the textual representation of a long integer to a long integer.
  157.  
  158. :xmp.
  159. long DH32ENTRY atol (const char *string);
  160. :exmp.
  161.  
  162.  
  163. :p.Parameters description &colon.
  164.  
  165. :table cols='20 10 45' frame=box rules=both.
  166. :row.
  167. :c.Parameter type
  168. :c.Input Output
  169. :c.Description
  170. :row.
  171. :c.const char *string
  172. :c.input
  173. :c.String to be converted.
  174. :etable.
  175.  
  176.  
  177. .*******************************************************************************
  178. .*** strupr                                                                  ***
  179. .*******************************************************************************
  180.  
  181. :h2 id=404.&titre_404.
  182.  
  183. :p.
  184. Uppercases a string.
  185.  
  186. :xmp.
  187. char *strupr(const char *string);
  188. :exmp.
  189.  
  190.  
  191. :p.Parameters description &colon.
  192.  
  193. :table cols='20 10 45' frame=box rules=both.
  194. :row.
  195. :c.Parameter type
  196. :c.Input Output
  197. :c.Description
  198. :row.
  199. :c.const char *string
  200. :c.in/out
  201. :c.On input &colon. string to be uppercased. On ouput &colon. uppercased string.
  202. :etable.
  203.  
  204. .*******************************************************************************
  205. .*** strpbrk                                                                  ***
  206. .*******************************************************************************
  207.  
  208. :h2 id=405.&titre_405.
  209.  
  210. :p.
  211. Return a pointer to the first occurrence in the string pointed to
  212. by string1 of a character of the string pointed to by string2.
  213.  
  214. :xmp.
  215. char * DH32ENTRY strpbrk (const char *string1, const char *string2);
  216. :exmp.
  217.  
  218.  
  219. :p.Parameters description &colon.
  220.  
  221. :table cols='20 10 45' frame=box rules=both.
  222. :row.
  223. :c.Parameter type
  224. :c.Input Output
  225. :c.Description
  226. :row.
  227. :c.const char *string1
  228. :c.input
  229. :c.string to search for characters.
  230. :row.
  231. :c.const char *string2
  232. :c.input
  233. :c.string containig characters to look for.
  234. :etable.
  235.  
  236.  
  237. .*******************************************************************************
  238. .*** fnmatch                                                                  ***
  239. .*******************************************************************************
  240.  
  241. :h2 id=406.&titre_406.
  242.  
  243. :p.
  244. Matches a file name using wildcards (OS/2 or POSIX semantics)
  245.  
  246. :nt.
  247. This call is a good replacement of FSH_WILDMATCH.
  248. :ent.
  249.  
  250. :xmp.
  251. int DH32ENTRY fnmatch (const char *mask, const char *name, int flags);
  252. :exmp.
  253.  
  254.  
  255. :p.Parameters description &colon.
  256.  
  257. :table cols='20 10 45' frame=box rules=both.
  258. :row.
  259. :c.Parameter type
  260. :c.Input Output
  261. :c.Description
  262. :row.
  263. :c.const char *mask
  264. :c.input
  265. :c.string containing wildcard.
  266. :row.
  267. :c.const char *name
  268. :c.input
  269. :c.file name to be matched by mask.
  270. :row.
  271. :c.int flags
  272. :c.input
  273. :c.flags to modify matching semantics. (_FNM_OS2, FNM_POSIX, _FNM_IGNORECASE)
  274. :etable.
  275.  
  276.  
  277. .*******************************************************************************
  278. .*** strtol                                                                  ***
  279. .*******************************************************************************
  280.  
  281. :h2 id=407.&titre_407.
  282.  
  283. :p.
  284. Converts a character string to a long integer.
  285.  
  286. :xmp.
  287. long DH32ENTRY strtol (
  288.                        const char *string, 
  289.                        char **end_ptr, 
  290.                        int radix
  291.                       );
  292. :exmp.
  293.  
  294.  
  295. :p.Parameters description &colon.
  296.  
  297. :table cols='20 10 45' frame=box rules=both.
  298. :row.
  299. :c.Parameter type
  300. :c.Input Output
  301. :c.Description
  302. :row.
  303. :c.const char *string
  304. :c.input
  305. :c.String to be converted
  306. :row.
  307. :c.char **end_ptr
  308. :c.in/out
  309. :c.Filled with the pointer to the first character not converted
  310. :row.
  311. :c.int radix
  312. :c.input 
  313. :c.Base in which the number should be interpreted (auto (0), 8, 10, 16)
  314. :etable.
  315.  
  316. .*******************************************************************************
  317. .*** sec32_attach_ses                                                        ***
  318. .*******************************************************************************
  319.  
  320. :h2 id=408.&titre_408.
  321.  
  322. :p.
  323. Attaches to sesdd32.sys and retieves sesdd32.sys's security entry points.
  324.  
  325. :xmp.
  326. int DH32ENTRY sec32_attach_ses(
  327.                                void *SecHlp
  328.                               );
  329. :exmp.
  330.  
  331.  
  332. :p.Parameters description &colon.
  333.  
  334. :table cols='20 10 45' frame=box rules=both.
  335. :row.
  336. :c.Parameter type
  337. :c.Input Output
  338. :c.Description
  339. :row.
  340. :c.void *SecHlp
  341. :c.in/out
  342. :c.Pointer to a SecurityHelpers structure that will be filled with sesdd32.sys's SecHlp entry points
  343. :etable.
  344.