|
|
1.1 root 1: /*
2: * Determine whether or not a given argument exists on the command line
3: * passed into the kernel.
4: *
5: * Takes a pointer to a NUL terminated string that is the name of
6: * the desired argument.
7: */
8: #include <sys/typed.h>
9: #ifndef TRUE
10: #define TRUE 1
11: #define FALSE 0
12: #endif /* TRUE */
13:
14: extern typed_space boot_gift;
15:
16: int
17: arg_exist(arg)
18: {
19: FIFO *gift_ffp;
20: typed_space *tp;
21: int retval;
22:
23: retval = FALSE;
24:
25: /* If we can't open the gift, we can't find the argument. */
26: gift_ffp = fifo_open(&boot_gift, 0);
27:
28: if (F_NULL != gift_ffp) {
29: while (T_NULL != (tp = fifo_read(gift_ffp))) {
30: if (T_STR_ARGF == tp->ts_type) {
31: RETYPE(tp, T_FIFO_SIC);
32: retval = fifo_find_str(tp, arg);
33: break;
34: }
35: }
36: }
37:
38: fifo_close(gift_ffp);
39: return(retval);
40: } /* arg_exist() */
41:
42:
43: /*
44: * Looks for the string "astring" in the fifo "afifo".
45: * Returns TRUE if it find the string.
46: */
47: int
48: fifo_find_str(afifo, astring)
49: typed_space *afifo;
50: char *astring;
51: {
52: FIFO *command_line;
53: typed_space *tp;
54: int retval;
55:
56: retval = FALSE;
57:
58: /* If we can't open the gift, we can't find the argument. */
59: command_line = fifo_open(afifo, 0);
60:
61: if (F_NULL != command_line) {
62: while (T_NULL != (tp = fifo_read(command_line))) {
63: /* Only check those items that are strings. */
64: if (T_STR_STR == tp->ts_type) {
65: /* Is this the string we've been looking for? */
66: if (0 == strcmp(tp->ts_data, astring)) {
67: retval = TRUE;
68: break;
69: }
70: }
71: }
72: }
73:
74: fifo_close(command_line);
75: return(retval);
76:
77: } /* fifo_find_str() */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.